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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 6.7, 7.0
    • None
    • None
    • 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

        1. LUCENE-7828.patch
          19 kB
          Adrien Grand

        Activity

          People

            nknize Nick Knize
            romseygeek Alan Woodward
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: