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 togeohash): It's the name of thePrefixTreeimplementation; geohash forGeohashPrefixTreeand quadtree forQuadPrefixTree.precision: It's used instead oftree_levelsto 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 thePrefixTree.distance_error_pct(defaults to0,025%and max0,5%): It sets the maximum error allowed inPrefixTree.
The customer_location mapping that we have seen in the previous recipe using geo_shape, will be:
"customer_location...