elasticsearch存储geo数据搜索

使用geo_point类型

创建索引

curl -XPOST 'http://localhost:9200/weixin_discovery_market_location' -d '
{
    "aliases" : {
            "alias_weixin_discovery_market_location" : {}
        },
    "mappings": {
        "type": {
            "properties": {
               "marketName":{
                    "type": "string"
                },
              "location": {
                "type": "geo_point"
              }
            }
        }
  }
}'
复制代码

添加数据

curl -XPUT 'http://localhost:9200/weixin_discovery_market_location/type/1009' -d '
{
  "marketName": "真北商场",
     "location": { 
        "lat": 41.12,
        "lon": -71.34
      }
}'
复制代码

添加数据

curl -XPUT 'http://localhost:9200/weixin_discovery_market_location/type/1019' -d '
{
  "marketName": "吴中商场",
     "location": { 
        "lat": 31.12,
        "lon": -51.34
      }
}'
复制代码

查询指定geo 周边最近地址

curl -XPOST 'http://localhost:9200/weixin_discovery_market_location/type/_search' -d '
{
  "query": {
    "filtered": {
      "filter": {
        "geo_distance": {
          "distance": "91km", 
          "location": { 
            "lat": 31.12,
            "lon": -51.34
          }
        }
      }
    }
  },
  "sort": [
    {
      "_geo_distance": {
        "location": { 
          "lat": 31.12,
            "lon": -51.34
        },
        "order":         "asc",
        "unit":          "km", 
        "distance_type": "plane" 
      }
    }
  ]

}'
复制代码

使用geo_shape类型

创建索引

curl -XPOST 'http://localhost:9200/weixin_discovery' -d '
{
    "aliases" : {
            "alias_weixin_discovery" : {}
        },
    "mappings": {
        "type": {
            "properties": {
                "marketName":{
                    "type": "string"
                },
                "location": {
                        "type": "geo_shape",
                        "points_only": true
                    }
            }
        }
  }
}'
复制代码

添加数据

curl -XPUT 'http://localhost:9200/weixin_discovery/type/1009' -d '
{
  "marketName": "真北商场",
    "location": {
        "type": "point",
        "coordinates": [121.392496,31.245827]
    }
}'
复制代码

查询指定geo 1KM范围内的geo数据信息

curl -XPOST 'http://localhost:9200/weixin_discovery/type/_search' -d '
{
  "query": {
    "geo_shape": {
      "location": { 
        "shape": { 
          "type":   "circle", 
          "radius": "1km",
          "coordinates": [ 
            121.391337,31.244654
          ]
        }
      }
    }
  }
}'
复制代码

reference

转载于:https://juejin.im/post/5c9372926fb9a070d20f1d44

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值