java - Lucene从3.x到4.1.0的迁移以及索引优化

标签 java migration lucene

我已从 lucene 3.x 迁移到 4.1.0。创建新索引后,我意识到索引目录中有更多文件。 lucene 3 使用 IndexWriter.optimize() 来折叠文件。 succesor in v4IndexWriter.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/

相关文章:

java - JButton Windows 外观

android - 没有这样的属性 : variantConfiguration for class:

c# - 有人可以指点我从 C# 到 Java 的良好迁移指南吗?

java - 可运行的 jar 文件错误

java - isKeyDown 在 Java 中不起作用

java - MongoDB - Spring Data 获取仅包含请求字段的文档(不多也不少)

c# - 如何使用 WCF 获取对已实例化的远程对象的引用?

java - 多字段子集合中的 Hibernate 搜索/lucene 搜索

java - 使用 solr 索引和搜索 MySQL

java - 有关 IndexSearcher/IndexReader 和 Directory 的问题