段(Segment) 的控制策略

来源:互联网 发布:手机淘宝怎么退款过程 编辑:程序博客网 时间:2024/06/01 08:47

在建立索引的时候对性能影响最大的地方就是在将索引写入文件的时候, 所以在具体应用的时候就需要对此加以控制: 

Lucene默认情况是每加入10份文档(Document)就从内存往index文件写入并生成一个段(Segment) ,然后每10个段(Segment)就合并成一个段(Segment). 这些控制的变量如下: 

IndexWriter属性默认值描述MergeFactory10控制segment合并的频率和大小MaxMergeDocsInt32.MaxValue限制每个segment中包含的文档数MinMergeDocs10当内存中的文档达到多少的时候再写入segment

MaxMergeDocs用于控制一个segment文件中最多包含的Document数.比如限制为100的话,即使当前有10个segment也不会合并,因为合并后的segment将包含1000个文档,超过了限制。

MinMergeDocs用于确定一个当内存中文档达到多少的时候才写入文件,该项对segment的数量和大小不会有什么影响,它仅仅影响内存的使用,进一步影响写索引的效率。

 

0 0