本文共 696 字,大约阅读时间需要 2 分钟。
我有一个Elasticsearch查询,其中包括bool必须匹配查询以及地理距离排序 . 我在比赛中允许1的模糊等级 . 我遇到的问题是排序导致匹配的文档分数被忽略,因此如果模糊匹配在地理上更接近搜索位置,则在完全匹配之前可能会在结果列表中出现几个模糊匹配 .
有没有办法将模糊匹配与地理距离排序相结合,这样精确匹配仍然优先于距离更近的模糊匹配?或者 - 我是否以错误的方式思考这个问题,我是否需要采取不同的方法?
我考虑的另一个选项是使用地理距离滤波器(5,10,25英里等)在不进行距离排序的情况下在不同的搜索半径带中执行多个查询,并组合结果 . 如果可能的话,我想避免多次查询,因为这只是一种预先输出的功能,性能至关重要 .
目前我的查询看起来像:
GET /_search
{
"from": 0, "size": 10,
"query": {
"bool": {
"must": [
{
"match": {
"searchName": {
"query" : "my query",
"operator" : "AND",
"fuzziness" : "1",
"fuzzy_transpositions" : true
}
}
}
]
}
},
"sort": [
{
"_geo_distance" : {
"location" : [-93.26000213623047, 44.970001220703125],
"order" : "asc",
"unit" : "mi",
"mode" : "min",
"distance_type" : "arc"
}
}
]
}
转载地址:https://blog.csdn.net/weixin_32601635/article/details/116039696 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!