:::tips 地理坐标查询就是根据经纬度查询

常见的使用场景:

  • 携程:搜索我附近的酒店
  • 滴滴:搜索我附近的出租车
  • 微信:搜索我附近的人 :::

    矩形范围查询

    :::tips 矩形范围查询,也就是geo_bounding_box查询,查询坐标落在某个矩形范围的所有文档。在查询时需要指定矩形左上、右下两个点的坐标,根据这两个点可以构成一个矩形,在该矩形内的坐标都是符合条件的 :::
    1. GET /索引库名/_search
    2. {
    3. "query": {
    4. "geo_bounding_box": {
    5. "字段名": {
    6. "top_left": {
    7. "lat": 纬度,
    8. "lon": 经度
    9. },
    10. "bottom_right": {
    11. "lat": 纬度,
    12. "lon": 经度
    13. }
    14. }
    15. }
    16. }
    17. }

    附近查询

    :::tips 附近查询,也叫做距离查询(geo_distance),用来查询到指定中心点小于某个距离值的所有文档,换句话说就是指定一个点作为圆心,指定距离为半径,画一个圆形,在该圆形内的坐标都是符合条件的 :::
    1. GET /索引库名/_search
    2. {
    3. "query": {
    4. "geo_distance": {
    5. "distance": "距离+单位", //指定圆形的半径
    6. "字段名": "纬度,经度" //指定圆心的坐标
    7. }
    8. }
    9. }