elasticsearch - 如何标准化 ElasticSearch 分数?

标签 elasticsearch lucene

对于我的项目,我需要找出哪些搜索结果被视为“良好”匹配。目前,分数因查询而异,因此需要以某种方式对它们进行标准化。标准化分数将允许选择高于给定阈值的结果。

我为 Lucene 找到了几个解决方案:

  • how do I normalise a solr/lucene score?
  • http://wiki.apache.org/lucene-java/ScoresAsPercentages

  • 我将如何继续并将相同的技术应用于 ElasticSearch?或者也许已经有一个解决方案可以与 ES 一起进行分数标准化?

    最佳答案

    据我搜索,没有办法从弹性中获得归一化的分数。您将不得不通过进行两个查询来破解它。首先是一个试验查询(最好是大小为 1,但所有属性都相同),它将为您获取 max_score .然后您可以拍摄您的实际查询并使用functional_score使分数正常化。通过max_score您在参数中作为试点查询的一部分获得了 function_score并用它来标准化每个分数。引用:This article snippet

    关于elasticsearch - 如何标准化 ElasticSearch 分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36545489/

    相关文章:

    java - 如何在Elastic Search中按降序显示时间序列值?

    elasticsearch - Elasticsearch对特定的_id进行优先级排序,但不过滤?

    python - Apache Solr 6.6 替换文档而不是更新

    java - 在 Lucene 索引中搜索特定术语

    ruby-on-rails - Elasticsearch /轮胎 : How to map to association attribute?

    c# - NEST Elasticsearch如何将字段与许多值匹配

    json - 为什么在Elasticsearch中执行此查询时出现错误

    elasticsearch - 如何在 Elasticsearch 中从文本中获得分数相似标签的总和

    search - 如何在 solr 的多值字段中添加不同的值

    performance - 对 Lucene 搜索结果进行分组并按类别计算频率