Lucene从3.x迁移到4.1.0并进行索引优化

时间:2013-01-30 08:11:01

标签: java migration lucene

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

2 个答案:

答案 0 :(得分:6)

除了意识形态(文件少于更多文件),你有什么实际的理由需要更少的文件吗?提供给定索引的总字节数大致相同,有什么区别?

由于效率低下而导致优化被删除的原因:它会导致搜索性能下降,结果负载高峰等。搜索多个网段的效果已经提高,.optimize()的需求不再合理。 Lucene现在使用TieredMergePolicy代替nicely balances the load并从不同角度解决此问题。

答案 1 :(得分:3)

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