DocumentWriter的addDocument方法
来源:互联网 发布:怎么更新windows系统 编辑:程序博客网 时间:2024/06/08 03:09
package document;
//从IndexWriter的方法实现看出来,它是使用DocumentWriter这个类的addDocument方法,
//来完成实际的数据存储工作。
//下面是addDocument源码
import java.io.IOException;
public class DocumentWriter {
final void addDocument(String segment, Document doc) throws IOException{
//初始化一个FieldInfos类,用来存储加入索引的Document中的各个Field信息
fieldInfos = new FieldInfos();
fieldInfos.add(doc);
//把所有的field的信息写入.fnm文件
fieldInfos.write(directory, segment + ".fnm");
//实例化一个FieldWriter, FieldWriter会负责写入.fdx 和 .fdt文件
FieldsWriter fieldsWriter = new FieldsWriter(directory, segment, fieldInfos);
try{
//将Document中的各个Field信息写入 .fdx 文件和 .fdt 文件
fieldsWriter.addDocument(doc);
}finally{
fieldsWriter.close();
}
//把用于存储所有词条的HashTable初始化
postingTable.clear();
//初始化一个int型数组,用于记录当前Document中所有的Field的长度
fieldLengths = new int[fieldInfos.size()];
//初始化一个int型数组,用于记录当前Document中所有Field在分析完毕
//后的最终Position
fieldPosition = new int[fieldInfos.size()];
//初始化一个int型数组,用于记录当前Document中所有Field在分析完毕后的最终Offset
fieldOffsets = new int[fieldInofs.size()];
//初始化一个float型数组,用于记录当前Document中所有的Field的boost值
fieldBoosts = new float[fieldInfo.size()];
Analys.fill(fieldBoosts, doc.getBoost());
//对Document中各个Field值进行“倒排”
inverDocument(doc);
//对词条表进行排序
Posting[] posting = sortPostingTable();
//把词条信息写入索引,主要是向.frq 和 。prx文件中写入词条的频率和位置信息
writePosting(posting, segment);
//把一些得分信息写入索引,主要是向.f文件中写入
writerNorms(segment);
}
}
//从IndexWriter的方法实现看出来,它是使用DocumentWriter这个类的addDocument方法,
//来完成实际的数据存储工作。
//下面是addDocument源码
import java.io.IOException;
public class DocumentWriter {
final void addDocument(String segment, Document doc) throws IOException{
//初始化一个FieldInfos类,用来存储加入索引的Document中的各个Field信息
fieldInfos = new FieldInfos();
fieldInfos.add(doc);
//把所有的field的信息写入.fnm文件
fieldInfos.write(directory, segment + ".fnm");
//实例化一个FieldWriter, FieldWriter会负责写入.fdx 和 .fdt文件
FieldsWriter fieldsWriter = new FieldsWriter(directory, segment, fieldInfos);
try{
//将Document中的各个Field信息写入 .fdx 文件和 .fdt 文件
fieldsWriter.addDocument(doc);
}finally{
fieldsWriter.close();
}
//把用于存储所有词条的HashTable初始化
postingTable.clear();
//初始化一个int型数组,用于记录当前Document中所有的Field的长度
fieldLengths = new int[fieldInfos.size()];
//初始化一个int型数组,用于记录当前Document中所有Field在分析完毕
//后的最终Position
fieldPosition = new int[fieldInfos.size()];
//初始化一个int型数组,用于记录当前Document中所有Field在分析完毕后的最终Offset
fieldOffsets = new int[fieldInofs.size()];
//初始化一个float型数组,用于记录当前Document中所有的Field的boost值
fieldBoosts = new float[fieldInfo.size()];
Analys.fill(fieldBoosts, doc.getBoost());
//对Document中各个Field值进行“倒排”
inverDocument(doc);
//对词条表进行排序
Posting[] posting = sortPostingTable();
//把词条信息写入索引,主要是向.frq 和 。prx文件中写入词条的频率和位置信息
writePosting(posting, segment);
//把一些得分信息写入索引,主要是向.f文件中写入
writerNorms(segment);
}
}
0 0
- DocumentWriter的addDocument方法
- FieldsWriter的addDocument方法
- solr的相关操作(addDocument,flush,commit,rollback,optimize,close)解析
- solr的相关操作(addDocument,flush,commit,rollback,optimize,close)解析
- solr的相关操作(addDocument,flush,commit,rollback,optimize,close)解析
- solr的相关操作(addDocument,flush,commit,rollback,optimize,close)解析
- Android Webkit中DocumentWriter模块分析
- lucene 4.6 之indexing 之 IndexWriter, DocumentWriter
- SOAPbody.addDocument(doc)出现NAMESPACE_ERR 错误
- Lucene2.4 测试 创建多个分析器addDocument(doc,analyzer);
- 上的方法方法
- 方法的调用 this方法 构造方法
- 方法,构造方法,抽象方法的区别
- 方法 | 方法是什么、方法的重载、方法的递归
- 方法以及方法的使用
- jQuery方法toggleClass的方法
- javascript的字符串方法方法
- 方法,与方法的重载
- DST,蝶形运算
- cpufreq
- 递归:打靶10次,求累积和90环的种数/概率
- lua math库
- [SDOI2011]计算器
- DocumentWriter的addDocument方法
- 五大常用算法之一:分治算法(红脸书生)
- C++纯虚函数
- CU分割信息提取(更新续)
- C语言--分支结构
- 五大常用算法之二:动态规划算法(红脸书生)
- 模拟客户端分布式的一致性hash
- mongodb分片的原理与搭建
- 观光公交[贪心解析]