Lucene 从 3.x 迁移到 4.1.0 和索引优化



我已经从lucene 3.x迁移到4.1.0。创建新索引后,我意识到索引目录中有更多的文件。lucene 3 使用 IndexWriter.optimize() 来折叠文件。v4 中的成功者是 IndexWriter.forceMerge(int maxNumSegments)。我已经尝试了使用maxNumSegments的不同值的forceMerge,并且我总是得到相同的索引文件。我希望这些文件合并为一个或至少更少的索引文件。我错了吗?你知道怎么做吗?

除了意识形态(文件少多好),有什么实际原因需要更少的文件吗?假设给定索引的总字节数大致相同,有什么区别?

删除优化的原因是效率低下:它会降低搜索性能、结果负载峰值等。 对多个区段进行搜索的性能有所提高,.optimize()的需求不再合理。Lucene现在使用TieredMergePolicy,它很好地平衡了负载,并从不同的角度解决了这个问题。

也许您正在寻找Lucene的复合文件格式,它将所有逻辑索引文件存储在单个实际文件中。请参阅 MergePolicy.setUseCompoundFile(true)。

最新更新