美文网首页
Elasticsearch geo_polygon 按多边形范围

Elasticsearch geo_polygon 按多边形范围

作者: 一位先生_ | 来源:发表于2022-06-04 09:00 被阅读0次

    ES 通过geo_polygon,在地图上画一个多边形,搜索包含在多边形内部的坐标点。

    例子:

    在地图上画一个多边形,搜索店铺

    GET /shops/_search
    {
      "query": {
        "bool": {
          "must": {
            "match_all": {} // 这里不设置其他搜索条件,直接匹配所有文档
          },
          "filter": { // 地理信息搜索不参与相关度算分,所以使用filter包裹起来
            "geo_polygon": { // geo_polygon搜索语句
              "location": { // 店铺的坐标存储在location字段.
                "points": [ // 设置组成多边形的经纬度坐标点数组。
                  {
                    "lat": 40.73, // 纬度
                    "lon": -74.1 // 经度
                  },
                  {
                    "lat": 40.83,
                    "lon": -75.1
                  },
                  {
                    "lat": 20,
                    "lon": -90
                  }
                ]
              }
            }
          }
        }
      }
    }
    

    说明:

    通常ES搜索中为了提升性能,可以使用filter禁掉相关度计算,还可以缓存查询结果。

    相关文章

      网友评论

          本文标题:Elasticsearch geo_polygon 按多边形范围

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