有时候,我不仅需要SOLR查询的前X个结果,而且还需要所有结果(运行数百万)。通过将0行作为请求参数进行一次搜索,然后使用结果中的numFound作为行数(*)重新执行搜索,可以轻松实现这一点。 当然,我们可以通过例如排序结果。 “id asc”删除相关性排名,但是,我希望能够禁用这些查询的整个评分计算,因为它们可能是计算密集型的,我们只是不需要它们这些案件。
我的问题: 当我们需要的只是所有结果时,有没有办法让SOLR在布尔模式下工作并有效地在这些通常很慢的查询上运行得更快?
(*)我实际上通常只是做一个分页查询,其中脚本遍历页面(多线程),以防止大型结果集超时,但尽可能保持快速,但这对于问题。
这看起来像一个相关的问题,但显然用户提出了错误的问题,并且仅在检索到所有结果后才发现:Solr remove ranking or modify ranking feature;这个问题没有在那里得到解答。
答案 0 :(得分:1)
使用过滤器而不是查询;过滤器没有分数计算。
答案 1 :(得分:1)
有几件事需要注意