美文网首页
Elasticsearch geo 按距离排序 --- 2022

Elasticsearch geo 按距离排序 --- 2022

作者: 一位先生_ | 来源:发表于2022-06-02 21:14 被阅读0次

根据地理信息搜索文档之后,返回多个文档数据的时候,很多业务场景都希望根据距离由近到远排序。

下面是按距离排序的例子

GET /shops/_search
{
  "query": {
    "bool": {
      "must": {
        "match_all": {}
      },
      "filter": {
        "geo_distance": { // 按距离搜索
          "distance": "1km", // 搜索1千米范围
          "location": { // 搜索字段为location
            "lat": 39.889916, // 当前纬度
            "lon": 116.379547 // 当前经度
          }
        }
      }
    }
  },
  "sort": [ // 设置排序条件
    {
      "_geo_distance": { // _geo_distance代表根据距离排序
        "location": { // 根据location存储的经纬度计算距离。
          "lat": 39.889916, // 当前纬度
          "lon": 116.379547 // 当前经度
        },
        "order": "asc" // asc 表示升序,desc 表示降序
      }
    }
  ]
}

说明:

按距离排序条件,需要再次设置当前经纬度坐标,这样ES才知道计算距离的参考坐标。

相关文章

网友评论

      本文标题:Elasticsearch geo 按距离排序 --- 2022

      本文链接:https://www.haomeiwen.com/subject/qgnfsrtx.html