ElasticSearch 映射类型 Twitter 坐标



无论如何,对于空间搜索ElasticSearch,映射类型如下结构:

"coordinates" : {
        "type" : "Point",
        "coordinates" : [
            100.41404641,
            5.37384675
        ]
    },

我想使用它,因为它来自我的 MongoDB 用于地理点类型,而不会像现有教程和示例那样将它们拆分为经度和经度字段。

这种结构是Twitter API默认流式传输的结构,因此我可以将其保存为"位置":{ "lat": 100.41, "long": 5.34 } 到 MongoDB 中。但是在向我的数据库添加额外的字段或更改内容之前,我想确保无法在 ElasticSearch 中使用此结构进行空间搜索。

谢谢

根据 ElasticSearch 文档,映射中可以有一个纬度和经度数组作为地理点类型。

映射:

PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "location": {
          "type": "geo_point"
        }
      }
    }
  }
}

格式为 [lon, lat],请注意,此处的 lon/lat 顺序以符合 GeoJSON。

PUT my_index/my_type/4
{
  "text": "Geo-point as an array",
  "location": [ -71.34, 41.12 ] 
}

地理点数据类型的其他示例:

  • 以字符串表示的地理点,格式为:"lat,lon"
  • 表示为地理哈希的地理点
  • 以数组表示的地理点,格式为:[ lon, lat]

最新更新