Skip to content

New shape field type for indexing Cartesian Geometries #43644

Closed
@nknize

Description

@nknize

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

  1. shape is a general 2D cartesian coordinate system (3D can be added in future)
  2. Coordinate system bounds include -Float.MAX_VALUE : +Float.Max_Value
  3. Any custom datum, referencing, or projections are handled outside the field
  4. Licensed: Basic

Tasks

  • Update ShapeBuilders to support non Geospatial coordinate system
  • Update ShapeBuilders to build Lucene's new XY{Geometry}; currently they only build LatLon{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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions