弹性搜索:得分为百分比

EJa*_*Jay 7 elasticsearch

是否可以对弹性搜索进行查询,以便以最高分数的百分比形式返回分数?到目前为止它返回的值"_score": 0.00786336,和最高分一样max_score": 0.13435546,所以我可以尝试转换我的结果,但我希望结果已经是百分比,所以我可以使用最低分,例如40%.

简而言之:有没有办法让_score达到最高分的百分比,还是有另一种设定最低分的方法?(似乎很难,因为max_score似乎是随机的)

sja*_*agr 3

max_score不是随机的,它只是max查询结果集的所有分数。

max_score值是与我们的查询匹配的所有文档中最高_score的。

例如,如果您的_score值为:[0.00786336, 0.0123, 0.0813523, 0.13435546],那么您的max_score值为0.13435546

根据您的比赛的相关性,对于多高也没有限制_score(即可以超过1

_score如果您尝试使用从命中到 a的比率来表示“百分比匹配” max_score,那么您将得到不可靠的结果,特别是如果您有很多几乎没有相关性的低分命中,但max_score接近那些低分。

如果您尝试按最低分数过滤掉,则应该使用min_score

另请参阅“什么是相关性?”

  • 感谢您的回答。我已经找到了 min_score。然而这个函数没有任何意义,因为它必须与最高分数相关。我无法提前知道 max_score 是多少。例如,如果我使用的 min_score 为 1.2,而我的 max_score 结果为 1.1,那么我就会遇到问题。我需要提前知道 _score 的比例/范围是多少。 (4认同)