-
Notifications
You must be signed in to change notification settings - Fork 25.6k
Description
tldr
This meta issue captures all tasks needed to support a new shape field type (in a new spatial x-pack module) for providing search capabilities of arbitrary 2D cartesian geometry (points, lines, polygons, and their multi variants). It has a lot in common with geospatial applications; including the ability to support INTERSECTS, WITHIN, DISJOINT, and (eventually) CONTAINS.
Background
With the addition of BKD geo shapes and its ability to decompose geometries into triangular tessellations, all the pieces are in place for creating a new field that lifts the -180, 180 longitude, -90, 90 latitude restriction and adds support for indexing cartesian (non lat, lon ellipsoidal) geometries. Elasticsearch could benefit from a shape field (as a companion to geo_shape) that addresses the general X, Y geometry use case (users currently hijack geo_point or geo_shape for this). shape field use cases include:
- CAD diagrams
- Sports venues
- Warehouse mapping
- General Venue mapping
- Gaming & Virtual Maps
Scope
shapeis a general 2D cartesian coordinate system (3D can be added in future)- Coordinate system bounds include
-Float.MAX_VALUE:+Float.Max_Value - Any custom datum, referencing, or projections are handled outside the field
- Licensed: Basic
Tasks
- Update ShapeBuilders to support non Geospatial coordinate system
- Update ShapeBuilders to build Lucene's new
XY{Geometry}; currently they only buildLatLon{Geometry} - Update GeoJson and WKT parsing to support non Geo Coordinates
- Add new
ShapeFieldMapperbuilt on top of Lucene's XYShape field - Add new
ShapeQueryBuilderto build XYShape lucene queries