我无法理解mergefactor和minMergeDocs之间的区别。
例如我想索引10,000个文档,并说这些文档中有100个填满了我的RAM缓冲区,所以Lucene会将这100个文档写成文件。现在,如果我设置mergefactor = 5,当要将第五个段写入磁盘时,Lucene会将所有现有段合并为一个段,依此类推。
1。 minMergeDocs适合这个?如果我有mergefactor = 5和minMergeDocs = 10 - mergefactor优先于minMergeDocs吗?
2。此外,当Lucene合并磁盘上的细分时,它是否也会删除各个细分,这些细分现在是新细分文件的一部分?
提前感谢您的回复,
答案 0 :(得分:2)
合并因子定义了合并段的频率。默认值为10.这意味着,为每10个文档创建一个新段。当此类段的数量达到10时,将合并段本身以创建包含100个文档的单个段。这是日志合并策略。
minMergeDocs在Lucene 3.0中不再存在。
要更好地控制索引编制,您可以使用IndexWriter中的setMaxBufferedDocs()
或setRAMBufferSizeMB()
或setMaxMergeDocs()
方法。