geo_shape数据类型帮助索引和搜索任何的地理形状,例如矩形和多边形。当被索引的数据或者执行的请求包括形状时,应该使用它,而不仅仅是坐标点。

可以使用geo_shape query查询文档。
重要:默认情况下,Elasticsearch使用BKD trees编码geo_shape。所以,使用BKD时,切勿指定下面的mapping options

  • distance_error_pct
  • points_only
  • precision
  • strategy
  • tree_levels
  • tree

如果你指定了其中一个或者多个选项,这个字段将会使用prefix tree编码来替代。Prefix tree encoding已经被弃用了。

Mapping 参数

geo_shape将GeoJson对象映射为geo_shape类型。要启用它,需要显示的指定map字段为geo_shape类型。
tree:在6.6中被废弃,要使用的PrefixTree的名称,geohash for GeohashPrefixTree and quadtree for QuadPrefixTree。注意:这个参数只与term 和 recursive strategies有关。默认为quadtree。
percision:在6.6中被废弃,这个参数使用来替代tree_levels来为tree_levels设置一个合适的值。这个值指定了期望的精确度,Elasticsearch将计算出最佳的tree_levels来满足这个精确度。这个值应该是一个数字后面跟可选的距离单位。有效单位包括in, inch, yd, yard, mi, miles, km, kilometers, m,meters, cm,centimeters, mm, millimeters。注意:这个参数只与term 和 recursive strategies有关。默认为50m。
tree_levels:在6.6中被废弃,前缀树PrefixTree所使用的的最大层数。可以用来控制形状表示的精确度和因此有多少terms被索引。默认值取决于所选择执行的前缀树PrefixTree。因为这个参数需要对底层实现有一定程度的理解,所以用户可以使用precision参数来替代。然而,即使你使用precision参数,Elasticsearch内部也只会使用tree_levels,并且通过mapping API所返回的也是此值。注意:这个参数只与term 和 recursive strategies有关。
strategy:在6.6中被废弃,
distance_error_pct:在6.6中被废弃,
orientation:
points_only:在6.6中被废弃,
ignore_malformed:
ignore_z_value:
coerce: