官术网_书友最值得收藏!

Mapping a GeoShape field

An extension to the concept of point is the shape. ElasticSearch provides a type that facilitates the management of arbitrary polygons—the GeoShape.

Getting ready

You need a working ElasticSearch cluster with Spatial4J (V0.3) and JTS (v1.12) in the classpath to use this type.

How to do it...

To map a geo_shape type a user must explicitly provide some parameters:

  • tree (defaults to geohash): It's the name of the PrefixTree implementation; geohash for GeohashPrefixTree and quadtree for QuadPrefixTree.
  • precision: It's used instead of tree_levels to provide a more human value to be used in the tree level. The precision number can be followed by the unit, that is, 10 m, 10 km, 10 miles, and so on.
  • tree_levels: It's the maximum number of layers to be used in the PrefixTree.
  • distance_error_pct (defaults to 0,025% and max 0,5%): It sets the maximum error allowed in PrefixTree.

The customer_location mapping that we have seen in the previous recipe using geo_shape, will be:

"customer_location": {
    "type": "geo_shape",
    "tree": "quadtree",
    "precision": "1m"
},

How it works...

When a shape is indexed or searched internally, a path tree is created and used.

A path tree is a list of terms that contains geographic information, computed to improve performance in evaluating geo calculus.

The path tree also depends on the shape type: point, linestring, polygon, multipoint, and multipolygon.

See also

主站蜘蛛池模板: 肇庆市| 綦江县| 丹巴县| 文水县| 东台市| 平顺县| 恩施市| 洞头县| 云林县| 清河县| 中牟县| 柯坪县| 北海市| 肃北| 饶平县| 铁岭县| 沙洋县| 右玉县| 宜昌市| 二手房| 泗阳县| 高唐县| 广安市| 长武县| 镇远县| 林口县| 精河县| 正阳县| 四会市| 山西省| 绥阳县| 盈江县| 巧家县| 长春市| 澎湖县| 海盐县| 重庆市| 仲巴县| 湖州市| 合作市| 鄯善县|