其它综合

关注公众号 jb51net

关闭
首页 > 网络编程 > 其它综合 > Elasticsearches通过坐标位置搜索附近人

Elasticsearches通过坐标位置实现对附近人的搜索

作者:Jeff的技术栈

这篇文章主要为大家介绍了Elasticsearches使用坐标位置实现对附近人的搜索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

一 创建mapping

PUT test
{
  "mappings": {
    "test":{
      "properties": {
        "location":{
          "type": "geo_point"
        }
      }
    }
  }
}

二 导入数据

POST test/test
{
  "location":{
    "lat":12,
    "lon":24
  }
}

三 查询

3.1根据给定两个点组成的矩形,查询矩形内的点

GET test/test/_search
{
  "query": {
    "geo_bounding_box": {
      "location": {
        "top_left": {
          "lat": 28,
          "lon": 10
        },
        "bottom_right": {
          "lat": 10,
          "lon": 30
        }
      }
    }
  }
}

3.2根据给定的多个点组成的多边形,查询范围内的点

GET test/test/_search
{
  "query": {
    "geo_polygon": {
      "location": {
        "points": [
          {
            "lat": 11,
            "lon": 25
          },
          {
            "lat": 13,
            "lon": 25
          },
          {
            "lat": 13,
            "lon": 23
          },
          {
            "lat": 11,
            "lon": 23
          }
        ]
      }
    }
  }
}

3.3查询给定1000KM距离范围内的点

GET test/test/_search
{
  "query": {
    "geo_distance": {
      "distance": "1000km",
      "location": {
        "lat": 12,
        "lon": 23
      }
    }
  }
}

3.4查询距离范围区间内的点的数量

GET test/test/_search
{
  "size": 0, 
  "aggs": {
    "myaggs": {
      "geo_distance": {
        "field": "location",
        "origin": {
          "lat": 52.376,
          "lon": 4.894
        },
        "unit": "km", 
        "ranges": [
          {
            "from": 50, 
            "to": 30000
          }
        ]
      }
    }
  }
}

以上就是Elasticsearches使用坐标位置实现对附近人的搜索 的详细内容,更多关于Elasticsearches位置坐标搜索附近人的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文