问题:
我正在使用Elasticsearch为我网站上的某些商家信息编制索引,并且我一直在夸大其间。即使我使用相同的坐标搜索我的文档,我仍然可以获得超过3000公里的距离。
发表:
[{
"expiryDate": "2014-04-11 02:32:16",
"geo": {
"lon": 45.297,
"lat": 75.0755
},
"id": "5571afb7ae2c287f4d54b713",
"images": [],
"imagesLinks": [],
}]
映射:
{
"listingsell" : {
"properties" : {
"geo" : {
"type" : "geo_point",
"fielddata" : {
"format" : "compressed",
"precision" : "1m"
}
}
}
}
}
查询:
{
"query": {
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "90000mi",
"geo" : {
"lat" : 45.1339,
"lon" : 75.019
}
}
}
}
},
"sort" : [
{
"_geo_distance" : {
"geo" : {
"lat" : 45.1339,
"lon" : 75.019
},
"order" : "asc",
"unit" : "mi"
}
}
],
}
结果:
{
"sort":[2247.4929]
}
答案 0 :(得分:0)
您的geo_point
索引方式错误:
"geo": {
"lon": 45.297,
"lat": 75.0755
}
或排序是以错误的方式完成的:
"geo" : {
"lat" : 45.1339,
"lon" : 75.019
}
意味着您将lat
与lon
混为一谈。