苏飞论坛

标题: 46-Elasticsearch映射地理形状 [打印本页]

作者: 站长苏飞    时间: 2019-1-9 11:12
标题: 46-Elasticsearch映射地理形状
映射地理形状

与 geo_point 类型的字段相似, 地理形状 也必须在使用前明确映射:

[C#] 纯文本查看 复制代码
PUT /attractions

{

  "mappings": {

    "landmark": {

      "properties": {

        "name": {

          "type": "string"

        },

        "location": {

          "type": "geo_shape"

        }

      }

    }

  }

}

你需要考虑修改两个非常重要的设置: 精度 和 距离误差 。

精度

精度 ( precision )参数 用来控制生成的 geohash 的最大长度。默认精度为 9 ,等同于尺寸在 5m x 5m 的geohash 。这个精度可能比你需要的精确得多。

精度越低,需要索引的单元就越少,检索时也会更快。当然,精度越低,地理形状的准确性就越差。你需要考虑自己的地理形状所需要的精度——即使减少1-2个等级的精度也能带来明显的消耗缩减收益。

你可以使用距离来指定精度 —— 如 50m 或 2km—不过这些距离最终也会转换成对应的Geohashes等级。

距离误差

当索引一个多边形时,中间连续区域很容易用一个短 geohash 来表示。 麻烦的是边缘部分,这些地方需要使用更精细的 geohashes 才能表示。

当你在索引一个小地标时,你会希望它的边界比较精确。让这些纪念碑一个叠着一个可不好。当索引整个国家时,你就不需要这么高的精度了。误差个50米左右也不可能引发战争。

距离误差 指定地理形状可以接受的最大错误率。它的默认值是 0.025 , 即 2.5% 。也就是说,大的地理形状(比如国家)相比小的地理形状(比如纪念碑)来说,容许更加模糊的边界。

0.025 是一个不错的初始值。不过如果我们容许更大的错误率,对应地理形状需要索引的单元就越少。


作者: 范范    时间: 2019-1-9 14:20
强烈支持楼主ing……
作者: Amy    时间: 2019-1-9 14:27
强烈支持楼主ing……
作者: 惜    时间: 2019-1-9 14:48
强烈支持楼主ing……




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4