【问题标题】:ElasticSearch mapping type Twitter coordinatesElasticSearch 映射类型 Twitter 坐标
【发布时间】:2014-03-10 05:14:58
【问题描述】:

无论如何要为空间搜索 ElasticSearch 映射类型这种结构:

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

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

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

谢谢

【问题讨论】:

    标签: mongodb elasticsearch elasticsearch-plugin


    【解决方案1】:

    根据ElasticSearch documents,可以在映射中将纬度和经度数组作为地理点类型。

    映射:

    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 ] 
    }
    

    Geo-point 数据类型的其他示例:

    • 以字符串形式表示的地理点,格式为:“lat,lon”
    • 表示为 geohash 的地理点
    • 以数组形式表示的地理点,格式为:[ lon, lat]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      相关资源
      最近更新 更多