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

MultiCollectorManager should have parity with MultiCollector behavior

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 9.0
    • 9.0
    • core/search
    • None
    • New

    Description

      The behavior of MultiCollectorManager and MultiCollector differ with respect to how they handle CollectionTerminationException and minCompetitiveScore calls.

      In MultiCollector, remaining collectors will continue collecting when one or more have thrown a CollectionTerminationException, but MultiCollectorManager will allow the exception to propagate and stop collecting against all collectors as soon as one throws (see: LUCENE-6772).

      Also, MultiCollector properly handles setting of min competitive scores by ensuring the lowest set across all wrapped collectors is used, or by making it a no-op in cases where at least one collector is using ScoreMode.COMPLETE (see: LUCENE-9402). MultiCollectorManager will share the same Scorable across all collectors, which seems like the wrong thing to do.

      Finally, MultiCollector will cache scores when a Scorable is shared by more than one collector (see: LUCENE-6263).

      We should update MultiCollectorManager to use common behavior with MultiCollector in all these areas. It should be easy to do by delegating to MultiCollector within MultiCollectorManager.

      Attachments

        Issue Links

          Activity

            People

              gsmiller Greg Miller
              gsmiller Greg Miller
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

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