lucene - 优化 Solr 进行排序

标签 lucene solr

我正在使用 Solr 进行实时搜索索引。我的数据集大约有 60M 大文档。我需要按时间排序,而不是按相关性排序。目前我在查询中使用排序标志来按时间排序。这适用于特定搜索,但是当搜索返回大量结果时,Solr 必须获取所有结果文档并在返回之前按时间对它们进行排序。这很慢,必须有更好的方法。

什么是更好的方法?

最佳答案

我找到了答案。

如果您想按时间而不是相关性排序,请对所有过滤器使用 fq= 而不是 q=。这样,Solr 就不会浪费时间计算匹配 q= 的文档的加权值。事实证明,Solr 在加权而不是排序上花费了太多时间。

此外,您可以通过预热 solrconfig.xml 中 newSearcher 和 firstSearcher 事件监听器中的排序字段来加速排序。这将确保排序是通过缓存完成的。

关于lucene - 优化 Solr 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5075228/

相关文章:

java - java中如何调用solr分析api?

ruby-on-rails-3 - 如何在 sunspot solr 中进行简单的 bool 查询

java - solr boost函数的目的

java - 使用lucene进行数据库搜索

regex - Elasticsearch/Lucene正则表达式fquery/query_string不返回所有文档

lucene - 如何删除 crate DB 中的分片?

solr - Solr 3.6 出现一些延迟后,文档得到了反射(reflect)

lucene - 是否可以遍历存储在 Lucene Index 中的文档?

Solr:特定自动完成的多个建议器

mysql - Solr 与 MySQL 的索引结构