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

Don't use BooleanScorer for small segments

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None
    • Lucene Fields:
      New

      Description

      If a BooleanQuery meets certain criteria (only contains disjunctions, is likely to match large numbers of docs) then we use a BooleanScorer to score groups of 1024 docs at a time. This allocates arrays of 1024 Bucket objects up-front. On very small segments (for example, a MemoryIndex) this is very wasteful of memory, particularly if the query is large or deeply-nested. We should avoid using a bulk scorer on these segments.

        Attachments

        1. LUCENE-7365.patch
          6 kB
          Alan Woodward
        2. LUCENE-7365.patch
          4 kB
          Alan Woodward
        3. LUCENE-7365-query.patch
          8 kB
          Alan Woodward
        4. LUCENE-7365.patch
          7 kB
          Alan Woodward

          Issue Links

            Activity

              People

              • Assignee:
                romseygeek Alan Woodward
                Reporter:
                romseygeek Alan Woodward
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: