美文网首页
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