我们正在使用 Lucene 2.9.2 (计划升级到3.x)并且已知的事实是搜索查询会随着时间的推移而变慢。通常我们会执行完整的重新索引。我已经阅读了问题https://stackoverflow.com/a/668453/356815及其答案并立即回答:我们不使用optimize(),因为在运行时不再接受性能。
碎片吗
我想知道以下内容:衡量现有索引的碎片的最佳做法是什么? Luke可以帮助我吗?
听到您对此分析主题的看法会非常有趣。
关于我们的指数的更多信息:
答案 0 :(得分:3)
较旧版本的Lucene没有有效处理大量细分。这就是为什么有些人建议优化(将所有段合并在一起)以提高搜索性能。
最近版本的Lucene不太适用。事实上,优化已被重命名为声音不那么神奇(你现在需要调用forceMerge(1))并且总是合并段甚至被认为是有害的(看看Lucene开发人员Simon Willnauer的这个nice article)。
对于每个请求,我们都会创建一个新的搜索器对象
打开读者非常昂贵。您应该使用SearcherManager,这将有助于您在必要时重新打开(增量打开)索引。