Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-10654

New companion doc value format for LatLonShape and XYShape field types

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Patch Available
    • Major
    • Resolution: Unresolved
    • None
    • 9.4
    • None
    • None
    • New

    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).

      Attachments

        Activity

          People

            Unassigned Unassigned
            nknize Nick Knize
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 8h
                8h