我正在寻找一种进行查询以返回分数的方法。
此分数将是2个数字之间的数字距离。
elasticsearch中有没有办法做到这一点?
例如,如果我的数据如下所示:
{
value: INT
}
在我的查询中,我想要一个默认参数(另一个INT)
因此,我希望我的数据按照分数(| object.value-default.value |)
排序答案 0 :(得分:1)
使用function_score
query(与script_score
一起使用),您可以实现所需的功能:
GET /_search
{
"query": {
"function_score": {
"query": {
"match_all": { }
},
"script_score" : {
"script" : {
"source": "Math.abs(doc['value'].value - params.default)",
"params": {
"default": 10
}
}
}
}
}
}
答案 1 :(得分:0)
如果我理解正确,您想要这样的东西吗?它会在字段range
中进行搜索,并返回所有score
值在0到6之间的匹配。
query = { '查询':{ '范围': { '得分了': { 'lte':6 'gte':0 } } }