2010-07-29 68 views
1

我无法理解mergefactor和minMergeDocs之间的区别。合并因子minMergeDocs Lucene

例如,我想索引10000个文档,并说100个这些文档填满了我的RAM缓冲区,所以Lucene会把这100个文档作为一个文件写出来。现在,如果我设置mergefactor = 5,当将第五个段写入磁盘时,Lucene会将所有现有段合并到单个段中,依此类推。

1. minMergeDocs在哪里适合这个?如果我有mergefactor = 5和minMergeDocs = 10 - mergefactor是否优先于minMergeDocs?

2.另外,当Lucene合并磁盘上的段时,它是否也删除单个段,它们现在是新段文件的一部分?

预先感谢您的回复,

回答

2

合并因子定义段多久会被合并。默认值是10.这意味着,每10个文档创建一个新的段。当这些细分市场的数量达到10个时,这些细分市场本身将合并为一个100个文档的单个细分市场。这是日志合并策略。

minMergeDocs不再存在于Lucene 3.0中。

要更好地控制索引,可以使用setMaxBufferedDocs()setRAMBufferSizeMB()setMaxMergeDocs()方法从IndexWriter