Package org.apache.lucene.search
Class TopFieldCollectorManager
java.lang.Object
org.apache.lucene.search.TopFieldCollectorManager
- All Implemented Interfaces:
CollectorManager<TopFieldCollector,
TopFieldDocs>
public class TopFieldCollectorManager
extends Object
implements CollectorManager<TopFieldCollector,TopFieldDocs>
Create a TopFieldCollectorManager which uses a shared hit counter to maintain number of hits and
a shared
MaxScoreAccumulator
to propagate the minimum score across segments if the
primary sort is by relevancy.
Note that a new collectorManager should be created for each search due to its internal states.
-
Constructor Summary
ConstructorDescriptionTopFieldCollectorManager
(Sort sort, int numHits, int totalHitsThreshold) Creates a newTopFieldCollectorManager
from the given arguments, with thread-safe internal states.TopFieldCollectorManager
(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold) Creates a newTopFieldCollectorManager
from the given arguments, with thread-safe internal states.TopFieldCollectorManager
(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold, boolean supportsConcurrency) Creates a newTopFieldCollectorManager
from the given arguments. -
Method Summary
Modifier and TypeMethodDescriptionReturn a newCollector
.reduce
(Collection<TopFieldCollector> collectors) Reduce the results of individual collectors into a meaningful result.
-
Constructor Details
-
TopFieldCollectorManager
public TopFieldCollectorManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold, boolean supportsConcurrency) Creates a newTopFieldCollectorManager
from the given arguments.NOTE: The instances returned by this method pre-allocate a full array of length
numHits
.- Parameters:
sort
- the sort criteria (SortFields).numHits
- the number of results to collect.after
- the previous doc after which matching docs will be collected.totalHitsThreshold
- the number of docs to count accurately. If the query matches more thantotalHitsThreshold
hits then its hit count will be a lower bound. On the other hand if the query matches less than or exactlytotalHitsThreshold
hits then the hit count of the result will be accurate.Integer.MAX_VALUE
may be used to make the hit count accurate, but this will also make query processing slower.supportsConcurrency
- to use thread-safe and slower internal states for count tracking.
-
TopFieldCollectorManager
Creates a newTopFieldCollectorManager
from the given arguments, with thread-safe internal states.NOTE: The instances returned by this method pre-allocate a full array of length
numHits
.- Parameters:
sort
- the sort criteria (SortFields).numHits
- the number of results to collect.after
- the previous doc after which matching docs will be collected.totalHitsThreshold
- the number of docs to count accurately. If the query matches more thantotalHitsThreshold
hits then its hit count will be a lower bound. On the other hand if the query matches less than or exactlytotalHitsThreshold
hits then the hit count of the result will be accurate.Integer.MAX_VALUE
may be used to make the hit count accurate, but this will also make query processing slower.
-
TopFieldCollectorManager
Creates a newTopFieldCollectorManager
from the given arguments, with thread-safe internal states.NOTE: The instances returned by this method pre-allocate a full array of length
numHits
.- Parameters:
sort
- the sort criteria (SortFields).numHits
- the number of results to collect.totalHitsThreshold
- the number of docs to count accurately. If the query matches more thantotalHitsThreshold
hits then its hit count will be a lower bound. On the other hand if the query matches less than or exactlytotalHitsThreshold
hits then the hit count of the result will be accurate.Integer.MAX_VALUE
may be used to make the hit count accurate, but this will also make query processing slower.
-
-
Method Details
-
newCollector
Description copied from interface:CollectorManager
Return a newCollector
. This must return a different instance on each call.- Specified by:
newCollector
in interfaceCollectorManager<TopFieldCollector,
TopFieldDocs>
-
reduce
Description copied from interface:CollectorManager
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.- Specified by:
reduce
in interfaceCollectorManager<TopFieldCollector,
TopFieldDocs> - Throws:
IOException
-
getCollectors
-