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
shape
is 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
ShapeFieldMapper
built on top of Lucene's XYShape field - Add new
ShapeQueryBuilder
to build XYShape lucene queries