弹性搜索:根据分数过滤掉不相关的结果



当我运行查询时,我会得到带有相关性分数的结果。例如,考虑结果中的以下记录及其分数,

  • 记录 1 : 分数 = 11.5
  • 记录 2 : 分数 = 11.2
  • 记录 3 : 分数 = 10.6
  • 记录 4 : 分数 = 9.9
  • 记录 5 : 分数 = 2.1
  • 记录 6 : 分数 = 1.9

我希望过滤掉记录 5 和 6,因为您可以看到它们是不相关的结果子集。与记录3和4之间的差异相比,记录3和4之间的分数差异较小

有没有办法在弹性搜索中过滤掉不相关的结果。要使用min_score查询,您应该事先知道分数,因此这不是解决方案

ES 在幕后使用 Lucene 进行评分,您无法事先知道从查询中获得的分数范围。您可以使用一些函数分数来规范分数等,但很难不找到某些性能不佳的情况。不建议这样做。

如果你需要知道Lucene是如何计算分数的,谷歌搜索BM25。

最新更新