深入浅出 jackrabbit 三 创建 document
2009-09-17 00:00:00 来源:WEB开发网通过上面这段示例代码,我们已经知道,addValue方法是创建3种field,下面我们来一一查看创建这3种field的方法:
NodeIndexer#addBinaryValue()
NodeIndexer#addBooleanValue()
NodeIndexer#addStringValue()
首先登场的是addBinaryValue,该方法之操作nt:resource的node,同时需要拿到binary的type和encoding,然后从文件中提取文本。
方法中已经加入了ahuaxuan的注释
Java代码
protected void addBinaryValue(Document doc,
String fieldName,
Object internalValue) {
// 'check' if node is of type nt:resource
try {
String jcrData = mappings.getPrefix(Name.NS_JCR_URI) + ":data";
if (!jcrData.equals(fieldName)) {
// don't know how to index
return;
}
InternalValue typeValue = getValue(NameConstants.JCR_MIMETYPE);
if (typeValue != null) {
//拿到文本的type,pdf,doc,等等
String type = typeValue.getString();
// jcr:encoding is not mandatory
//拿到编码类型
String encoding = null;
InternalValue encodingValue = getValue(NameConstants.JCR_ENCODING);
if (encodingValue != null) {
encoding = encodingValue.getString();
}
InputStream stream =
((BLOBFileValue) internalValue).getStream();
//对而进制流进行提取,这里我们暂时把这个操作当成非异步//操作来理解
Reader reader = extractor.extractText(stream, type, encoding);
//创建field
doc.add(createFulltextField(reader));
}
} catch (Exception e) {
………………
}
}
Tags:深入浅出 jackrabbit 创建
编辑录入:爽爽 [复制链接] [打 印]- ››创建SQL2005自动备份,定期删除的维护计划
- ››创建动态表单 javascript
- ››深入浅出实战攻防恶意PDF文档
- ››创建基于PPTP的站点到站点VPN连接:ISA2006系列之...
- ››创建基于L2TP的站点到站点的VPN连接:ISA2006系列...
- ››创建一个Twisted Reactor TCP服务器
- ››创建Windows Mobile上兼容性好的UI 程序
- ››创建android的Service
- ››创建远古部落环境与原住民角色
- ››创建并扩展Apache Wicket Web应用
- ››创建不在任务条中显示窗口按钮的应用
- ››创建 Android 文件系统(Root file system)
更多精彩
赞助商链接