我正在寻找一种可能性,以找到最接近的价格/数字的帮助下,ElasticSearch。问题是,我没有一个范围。我想实现的是,结果排序的最近距离。根据示例搜索查询,我的索引包含3个文件与以下价格(数字):四十五、二十七、三十二
从我的搜索值29到给定数字的“距离”是45 - 29 = 16| 27 - 29 = -2| 32 - 29 = 3所以我所期望的是,搜索结果是按数字离给定价格的“距离”来评分的。
搜索查询示例:
GET myawesomeindex/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"description": "this is the text i want to find"
}
},
{
"match": {
"price": 29
}
}
]
}
}
}
我想我的问题与这个类似的问题有关:Elasticsearch scoring based on how close a number is to a query
2条答案
按热度按时间jexiocij1#
这就对了:
您还需要启用动态脚本。
你也可以这样做
但是这将改变
score
本身。如果你想纯粹按距离排序(而不是其他),那么我相信第一种选择是最好的。cnh2zyt32#
以下是我的工作方式。在这个例子中,我使用了UTC秒的时间戳。