Easysearch、Elasticsearch 还是 Opensearch,是个问题

elasticsearch搜索经纬度(lbs)_geo_distance距离排序实现方案

Elasticsearch | 作者 edison | 发布于2016年07月01日 | 阅读数:19459

数据存储了很多的景点、医院、学校。并且都包含有经纬度信息。

需求:需要根据手机定位的实时位置的经纬度对 周边的景点、医院、学校进行从近到远距离排序,支持分页查询。

问:有没有简单的例子指导一下实现,经查阅简陋的官方文档摸索,路途艰辛,还望指点迷津。(有例子后,也会更新该问题)


官方距离排序文档:https://www.elastic.co/guide/e ... .html
已邀请:

edison - 从事软件开发,热爱技术,个人博客:(程序员百味) http://www.bywei.cn

赞同来自:

索引创建

location: {
  lat: 31.221308725705452
  lon: 121.46336800986947
}

索引mapping

{
   "location" : {
        "type" : "geo_point"
    }
}

排序搜索

查询json:

{
  "sort": [
    {
      "_geo_distance": {
        "unit": "km",
        "order": "asc",
        "location": [
          121.46336800986947,
          31.221308725705452
        ],
        "distance_type": "sloppy_arc",
        "mode": "min"
      }
    }
  ],
  "from": 0,
  "size": 10,
  "query": {
    "filtered": {
      "query": {
        "bool": {
          "must": {
            "match_all": {}
          }
        }
      },
      "filter": {
        "bool": {
          "must": [
            {
              "term": {
                "channelCodes.channelCode": [
                  "WWW"
                ]
              }
            }
          ]
        }
      }
    }
  }
}

范围查询




文档:

https://www.elastic.co/blog/ge ... earch

https://www.elastic.co/guide/e ... .html

suwensen - 如影随形

赞同来自:

geo中sort的值浮点位数太多了,我只想取小数点前1位,怎么搞?

jacktielr - 死宅

赞同来自:

兄弟,你有用到geo_shape的相关东西吗,工作需要,急!
从pg数据库中把数据导到ES之后,ES貌似不识别数据类型,自己加了map也不行,添加数据的时候还是报错。
 
跪求大神指导啊!!!!

xiongchaochao - elastic-man

赞同来自:

兄弟 问题解决了吗!ES支持平面坐标的空间查询吗?

要回复问题请先登录注册