就像有一个 min_score 参数来丢弃分数较小的结果一样,有没有办法丢弃分数高于给定值的结果呢?

我使用商品价格来计算得分,但是我需要执行一个查询以确保价格在某些限制(最大和最小)之间。使用求和多个字段的function_score字段函数来计算价格。

干杯。

最佳答案

我的第一个想法是将post_filter与范围查询一起使用,但是_score is not available in the post_filter

但与此同时,作为一种解决方法,只需定义script_score即可排除更高的分数:

GET _search
{
  "query": {
    "function_score": {
      "query": {
        ...
      },
      "script_score" : {
        "script" : {
          "params": {
            "max_score": 10
           },
           "source": "_score > params.max_score ? 0 : _score"
         }
      },
      "boost_mode": "replace"
    }
  }
}

关于elasticsearch - 是否可以在ElasticSearch中丢弃得分高于给定阈值的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59688167/

10-16 04:09