优化 Lucene 性能的各种方法是什么?
我应该使用缓存 API 来存储我的 lucene 搜索查询,以便节省再次构建查询的开销吗?
快速提示:
欺骗。使用RAMDirectory将整个索引加载到内存中。之后,一切都在飞速发展。:)
我发现性能问题的最佳答案是对其进行分析。指南很棒,但是有很多变量会影响性能,例如数据集的大小、正在执行的查询类型、数据类型等。
获取Netbeans 分析器或类似的东西并尝试不同的方式。使用 Mitch 链接的文章,但要确保你真正测试了哪些有帮助,哪些(通常令人惊讶)有害。
与代码中的性能改进相比,您从 Lucene 获得的任何性能差异也很有可能很小。分析器也会指出这一点。
对于 64 位机器,使用MMapDirectory而不是RAMDirectory ,正如Lucene 的核心提交者之一在此处很好解释的那样。