【发布时间】:2020-01-10 19:50:21
【问题描述】:
与min_score参数一样,可以丢弃分数小的结果,有没有办法丢弃分数高于给定值的结果?
我使用商品价格来计算分数,但我需要进行查询以确保价格在某些限制(最大值和最小值)之间。价格是使用 function_score 字段函数对几个字段求和来计算的。
干杯。
【问题讨论】:
标签: elasticsearch
与min_score参数一样,可以丢弃分数小的结果,有没有办法丢弃分数高于给定值的结果?
我使用商品价格来计算分数,但我需要进行查询以确保价格在某些限制(最大值和最小值)之间。价格是使用 function_score 字段函数对几个字段求和来计算的。
干杯。
【问题讨论】:
标签: elasticsearch
我的第一个想法是使用带有范围查询的 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"
}
}
}
【讨论】: