[ https://issues.apache.org/jira/browse/LUCENE-10654?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nick Knize updated LUCENE-10654: -------------------------------- Description: {{XYDocValuesField}} provides doc value support for {{XYPoint}}. {{LatLonDocValuesField}} provides docvalue support for {{LatLonPoint}}. However, neither {{LatLonShape}} nor {{XYShape}} currently have a docvalue format. This lack of doc value support for shapes means facets, aggregations, and IndexOrDocValues queries are currently not possible for Shape field types. This gap needs be closed in lucene. To support IndexOrDocValues queries along with various geometry aggregations and facets, the ability to compute the spatial relation with the doc value is needed. This is straightforward with {{XYPoint}} and {{LatLonPoint}} since the doc value encoding is nothing more than a simple 2D integer encoding of the x,y and lat,lon dimensional components. Accomplishing the same with a naive integer encoded binary representation for N-vertex shapes would be costly. {{ComponentTree}} already provides an efficient in memory structure for quickly computing spatial relations over Shape types based on a binary tree of tessellated triangles provided by the {{Tessellator}}. Furthermore, this tessellation is already computed at index time. If we create an on-disk representation of {{ComponentTree}} 's binary tree of tessellated triangles and use this as the doc value {{binaryValue}} format we will be able to efficiently compute spatial relations with this binary representation and achieve the same facet/aggregation result over shapes as we can with points today (e.g., grid facets, centroid, area, etc). was: {{XYDocValuesField}} provides doc value support for {{XYPoint}}. {{LatLonDocValuesField}} provides docvalue support for {{LatLonPoint}}. However, neither {{LatLonShape}} nor {{XYShape}} currently have a docvalue format. This lack of doc value support for shapes means facets, aggregations, and IndexOrDocValues queries are currently not possible for Shape field types. This gap needs be closed in lucene. To support IndexOrDocValues queries along with various geometry aggregations and facets, the ability to compute the spatial relation with the doc value is needed. This is straightforward with {{XYPoint}} and {{LatLonPoint}} since the doc value encoding is nothing more than a simple 2D integer encoding of the x,y and lat,lon dimensional components. Accomplishing the same with a naive integer encoded binary representation for N-vertex shapes would be costly. {{ComponentTree}} already provides an efficient in memory structure for quickly computing spatial relations over Shape types based on a binary tree of tessellated triangles provided by the {{Tessellator}}. Furthermore, this tessellation is already computed at index time. If we create an on-disk representation of {{ComponentTree}}s binary tree of tessellated triangles and use this as the doc value {{binaryValue}} format we will be able to efficiently compute spatial relations with this binary representation and achieve the same facet/aggregation result over shapes as we can with points today (e.g., grid facets, centroid, area, etc). > New companion doc value format for LatLonShape and XYShape field types > ---------------------------------------------------------------------- > > Key: LUCENE-10654 > URL: https://issues.apache.org/jira/browse/LUCENE-10654 > Project: Lucene - Core > Issue Type: New Feature > Reporter: Nick Knize > Priority: Major > > {{XYDocValuesField}} provides doc value support for {{XYPoint}}. > {{LatLonDocValuesField}} provides docvalue support for {{LatLonPoint}}. > However, neither {{LatLonShape}} nor {{XYShape}} currently have a docvalue > format. > This lack of doc value support for shapes means facets, aggregations, and > IndexOrDocValues queries are currently not possible for Shape field types. > This gap needs be closed in lucene. > To support IndexOrDocValues queries along with various geometry aggregations > and facets, the ability to compute the spatial relation with the doc value is > needed. This is straightforward with {{XYPoint}} and {{LatLonPoint}} since > the doc value encoding is nothing more than a simple 2D integer encoding of > the x,y and lat,lon dimensional components. Accomplishing the same with a > naive integer encoded binary representation for N-vertex shapes would be > costly. > {{ComponentTree}} already provides an efficient in memory structure for > quickly computing spatial relations over Shape types based on a binary tree > of tessellated triangles provided by the {{Tessellator}}. Furthermore, this > tessellation is already computed at index time. If we create an on-disk > representation of {{ComponentTree}} 's binary tree of tessellated triangles > and use this as the doc value {{binaryValue}} format we will be able to > efficiently compute spatial relations with this binary representation and > achieve the same facet/aggregation result over shapes as we can with points > today (e.g., grid facets, centroid, area, etc). -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org