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

Improve PointValues visitor calls when all docs in a leaf share a value

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.7, 7.0
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      When all the docs in a leaf node have the same value, range queries can waste a lot of processing if the node itself returns CELL_CROSSES_QUERY when compare() is called, in effect performing the same calculation in visit(int, byte[]) over and over again. In the case I'm looking at (very low cardinality indexed LongRange fields), this causes something of a perfect storm for performance. PointValues can detect up front if a given node has a single value (because it's min value and max value will be equal), so this case should be fairly simple to identify and shortcut.

        Attachments

          Activity

            People

            • Assignee:
              nknize Nicholas Knize
              Reporter:
              romseygeek Alan Woodward
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: