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

Don't use BooleanScorer for small segments

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None
    • 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
          7 kB
          Alan Woodward
        2. LUCENE-7365.patch
          4 kB
          Alan Woodward
        3. LUCENE-7365.patch
          6 kB
          Alan Woodward
        4. LUCENE-7365-query.patch
          8 kB
          Alan Woodward

        Issue Links

          Activity

            People

              romseygeek Alan Woodward
              romseygeek Alan Woodward

              Dates

                Created:
                Updated:

                Slack

                  Issue deployment