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 an up-and-running Elasticsearch installation as we described in the Downloading and installing Elasticsearch recipe in Chapter 2, Downloading and Setup.
To be able to use advanced shape management, Elasticsearch requires two JAR libraries in its classpath
(usually the lib
directory):
Spatial4J (v0.3)
JTS (v1.13)
How to do it
To map a geo_shape
type, a user must explicitly provide some parameters:
tree
: This is the name of the PrefixTree implementation: geohash forGeohashPrefixTree
and quadtree forQuadPrefixTree
(defaultgeohash
)precision
: This is used instead oftree_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, 10m, 10km, 10miles, and so ontree_levels
: This is the maximum number of layers to be used in the prefix treedistance_error_pct...