参考ES documentation,如果lat和lon都在同一个地理类型字段中,则可以基于地理位置进行排序。
{
"sort" : [
{
"_geo_distance" : {
"pin.location" : [-70, 40],
"order" : "asc",
"unit" : "km",
"mode" : "min",
"distance_type" : "arc",
"ignore_unmapped": true
}
}
],
"query" : {
"term" : { "user" : "kimchy" }
}
}
就我而言,我在纬度和经度都位于单独的浮动字段中。如果无法更改架构,该如何按地理距离排序?
答案 0 :(得分:1)
您将需要使用新映射创建一个新索引,该映射将包含geo point字段而不是两个字段(经纬度,经度)。然后,您需要将数据索引到新创建的索引中。查看Reindex API-将帮助您将数据移至新索引。