一架梯子,一头程序猿,仰望星空!

Elasticsearch 地理坐标点存储


在ES中地理坐标指的就是经度和纬度,ES中存储经纬度坐标的数据类型为:geo_point。

1.定义映射的数据类型

我们可以通过定义索引映射的时候,指定字段类型为geo_point,表示存储的是一个经纬度坐标值。

例子:

PUT /shop
{
  "mappings": {
    "properties": {
      "location": { 
        "type": "geo_point" // location字段的类型为geo_point
      }
    }
  }
}

2.geo_point的存储格式

保存geo_point类型的数据主要有下面几种格式

2.1. 格式1

PUT /shop/_doc/1
{
  "location": { 
    "lat": 41.12,
    "lon": -71.34
  }
}

说明:

  • lat - 代表纬度
  • lon - 代表经度

2.2. 格式2

PUT /shop/_doc/2
{
  "location": [ -71.34, 41.12 ] 
}

说明:

  •  [ 经度, 纬度] - 以数组的形式存储经纬度

2.3. 格式3

PUT /shop/_doc/3
{
  "location": "41.12,-71.34" 
}

说明:

以字符串的形式存储经纬度,格式: "纬度,经度"