繁体   English   中英

是否可以在 ElasticSearch 中丢弃得分高于给定阈值的结果?

[英]Is it possible to discard results with higher score than a given threshold in ElasticSearch?

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

我使用商品价格来计算分数,但我需要进行查询以确保价格介于某些限制(最大值和最小值)之间。 价格是使用 function_score 字段函数将几个字段相加来计算的。

干杯。

我的第一个想法是将 post_filter 与范围查询一起使用,但_scorepost_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"
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM