Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
9.0
-
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
- links to