- ElasticSearch Cookbook
- Alberto Paro
- 256字
- 2021-04-02 10:10:02
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 thePrefixTree
implementation; geohash forGeohashPrefixTree
and quadtree forQuadPrefixTree
.precision
: It's 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, 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": { "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
- To fully understand the logic behind the GeoShape, visit the ElasticSearch page about GeoShape, and the sites of the libraries used for geographic calculus (https://github.com/spatial4j/spatial4j and http://www.vividsolutions.com/jts/jtshome.htm).
推薦閱讀
- 電腦組裝與系統安裝
- 鴻蒙生態:開啟萬物互聯的智慧新時代
- Ansible權威指南
- Mastering Distributed Tracing
- 開源安全運維平臺OSSIM疑難解析:入門篇
- Extending Bootstrap
- Linux集群和自動化運維
- Docker+Kubernetes應用開發與快速上云
- Windows Server 2019 Administration Fundamentals
- 嵌入式實時操作系統μC/OS原理與實踐
- Windows 7案例教程
- Linux網絡配置與安全管理
- Linux 從入門到項目實踐(超值版)
- Web Penetration Testing with Kali Linux(Third Edition)
- 完美應用Ubuntu(第2版)