我已从 lucene 3.x 迁移到 4.1.0。创建新索引后,我意识到索引目录中有更多文件。 lucene 3 使用 IndexWriter.optimize() 来折叠文件。 succesor in v4是 IndexWriter.forceMerge(int maxNumSegments) 。我尝试使用不同的 maxNumSegments 值进行强制合并,但始终得到相同的索引文件。我希望这些文件能够合并到一个或至少更少的索引文件中。我错了吗?你知道怎么做吗?
最佳答案
除了意识形态(文件越少越好)之外,还有什么实际原因需要更少的文件吗?假设给定索引的总字节数大致相同,有什么区别?
删除优化的原因是它效率低下:它会降低搜索性能、导致结果负载峰值等。在多个段上搜索的性能已得到改善,并且需要 .optimize()
不再合理。 Lucene 现在使用 TieredMergePolicy
而不是 nicely balances the load并从不同的角度解决了这个问题。
关于java - Lucene从3.x到4.1.0的迁移以及索引优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14599297/