我打算使用elasticsearch的{{3}}功能来减少结果集。
问题是,使用Terminate After时检索到的文档是在完整的文档集中排名,还是仅在缩小的返回集中排序?
答案 0 :(得分:2)
在限制每个分片的搜索命中数后终止,因此任何后来可能有一个命中的文档也可能比返回的最高排名文档具有更高的排名(更高的分数),因为用于排名的分数独立于另一个命中。
所以是的,文档将仅根据返回的结果集进行排名,但这不会影响计算实际分数的方式,这会考虑所有文档。
想要缩小结果集并希望根据可能发生的所有命中对其进行排名本身就是一个矛盾。 终止后通常用于过滤器类型查询,其中所有返回文档的分数相同,因此排名无关紧要。 对于匹配类型查询,ES使用分页,因此它已经非常有效,并且您实际上并不需要限制文档集。