就像有一个 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/