Package org.apache.lucene.search
Interface CollectorManager<C extends Collector,T>
- All Known Implementing Classes:
MultiCollectorManager
,TopFieldCollectorManager
,TopScoreDocCollectorManager
,TotalHitCountCollectorManager
public interface CollectorManager<C extends Collector,T>
A manager of collectors. This class is useful to parallelize execution of search requests and has
two main methods:
newCollector()
which must return a NEW collector which will be used to collect a certain set of leaves.reduce(Collection)
which will be used to reduce the results of individual collections into a meaningful result. This method is only called after all leaves have been fully collected.
Note: Multiple LeafCollector
s may be requested for the same LeafReaderContext
via Collector.getLeafCollector(LeafReaderContext)
across the different
Collector
s returned by newCollector()
. Any computation or logic that needs to
happen once per segment requires specific handling in the collector manager implementation,
because the collection of an entire segment may be split across threads.
- See Also:
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Method Summary
Modifier and TypeMethodDescriptionReturn a newCollector
.reduce
(Collection<C> collectors) Reduce the results of individual collectors into a meaningful result.
-
Method Details
-
newCollector
Return a newCollector
. This must return a different instance on each call.- Throws:
IOException
-
reduce
Reduce the results of individual collectors into a meaningful result. For instance aTopDocsCollector
would compute thetop docs
of each collector and then merge them usingTopDocs.merge(int, TopDocs[])
. This method must be called after collection is finished on all provided collectors.- Throws:
IOException
-