本文主要是介绍Lucene索引过程详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用addDocument方法向索引添加文档
segment的概念,所谓segment,其实指的是一个逻辑概念,在每个segment里,有许多的Document,一个索引中,可能有很多个segment。 .Lucene
对索引的管理的最大的单位就是segment.每个segment内的索引文件都具有相同的前缀。
package indexwriter;
import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
//IndexWriter的addDocument方法是向索引添加文档的主要接口,
//在IndexWriter中,总共有两个重载的addDocument方法。
//其中,带有analyzer参数的方法是其主要实现
public class Test1 {
public void addDocument(Document doc, Analyzer analyzer) throws IOException{
//构建了DocumentWriter实例
DocumentWriter dw = new DocumentWriter(ramDirectory, analyzer, this);
dw.setInfoStream(infoStream);
//为segment命名
String segmentName = newSegmentName();
dw.addDocument(segmentName, doc);
//对当前的IndexWriter进行同步
synchronized(this){
//将当前的segment名称加入
segmentInfo.addElement(new SegmentInfo(segmentName, 1, ramDirectory));
//判断是否需要合并segment
maybeMergeSegments();
}
}
}
这篇关于Lucene索引过程详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!