Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New shape field type for indexing Cartesian Geometries #43644

Closed
5 tasks done
nknize opened this issue Jun 26, 2019 · 3 comments
Closed
5 tasks done

New shape field type for indexing Cartesian Geometries #43644

nknize opened this issue Jun 26, 2019 · 3 comments
Assignees
Labels
:Analytics/Geo Indexing, search aggregations of geo points and shapes >feature Meta v7.4.0

Comments

@nknize
Copy link
Contributor

nknize commented Jun 26, 2019

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
@nknize nknize added >feature :Analytics/Geo Indexing, search aggregations of geo points and shapes :Search Foundations/Mapping Index mappings, including merging and defining field types v8.0.0 labels Jun 26, 2019
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-search

@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-analytics-geo

@nknize nknize added the Meta label Jun 26, 2019
@nknize nknize added the 7x label Jun 26, 2019
imotov added a commit that referenced this issue Jun 27, 2019
Moves coordinate validation from Geometry constructors into
parser.

Relates #43644
imotov added a commit that referenced this issue Jun 28, 2019
Moves coordinate validation from Geometry constructors into
parser.

Relates #43644
@pcsanwald pcsanwald removed the v8.0.0 label Jul 2, 2019
imotov added a commit that referenced this issue Jul 30, 2019
Move indexShape functionality into AbstractGeometryFieldMapper to make
it more unit testable.

Relates to #43644
imotov added a commit that referenced this issue Jul 30, 2019
Move indexShape functionality into AbstractGeometryFieldMapper to make
it more unit testable.

Relates to #43644
jkakavas pushed a commit that referenced this issue Jul 31, 2019
Move indexShape functionality into AbstractGeometryFieldMapper to make
it more unit testable.

Relates to #43644
@nknize nknize changed the title New geometry field type for indexing Cartesian Geometries New spatial field type for indexing Cartesian Geometries Aug 27, 2019
@nknize nknize changed the title New spatial field type for indexing Cartesian Geometries New shape field type for indexing Cartesian Geometries Aug 27, 2019
@nknize
Copy link
Contributor Author

nknize commented Aug 27, 2019

complete and merged in 7.x by #45363

@nknize nknize closed this as completed Aug 27, 2019
imotov added a commit to imotov/elasticsearch that referenced this issue Sep 6, 2019
Enables support for cartesian geometries shape type. We still need to
decide how to handle the distance function since it is currently using
the haversine distance formula and returns results in meters, which
doesn't make any sense for cartesian geometries.

Closes elastic#46412
Relates to elastic#43644
@imotov imotov added v7.4.0 and removed 7x labels Sep 10, 2019
@colings86 colings86 removed the :Search Foundations/Mapping Index mappings, including merging and defining field types label Sep 11, 2019
imotov added a commit that referenced this issue Sep 25, 2019
Enables support for Cartesian geometries shape type. We still need to
decide how to handle the distance function since it is currently using
the haversine distance formula and returns results in meters, which
doesn't make any sense for Cartesian geometries.

Closes #46412
Relates to #43644
imotov added a commit that referenced this issue Sep 26, 2019
Enables support for Cartesian geometries shape type. We still need to
decide how to handle the distance function since it is currently using
the haversine distance formula and returns results in meters, which
doesn't make any sense for Cartesian geometries.

Closes #46412
Relates to #43644
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Analytics/Geo Indexing, search aggregations of geo points and shapes >feature Meta v7.4.0
Projects
None yet
Development

No branches or pull requests

5 participants