Class TopScoreDocCollectorManager
- All Implemented Interfaces:
CollectorManager<TopScoreDocCollector,
TopDocs>
MaxScoreAccumulator
to propagate the minimum score across segments
Note that a new collectorManager should be created for each search due to its internal states.
-
Constructor Summary
ConstructorsConstructorDescriptionTopScoreDocCollectorManager
(int numHits, int totalHitsThreshold) Creates a newTopScoreDocCollectorManager
given the number of hits to collect and the number of hits to count accurately, with thread-safe internal states.TopScoreDocCollectorManager
(int numHits, ScoreDoc after, int totalHitsThreshold) Creates a newTopScoreDocCollectorManager
given the number of hits to collect and the number of hits to count accurately, with thread-safe internal states.TopScoreDocCollectorManager
(int numHits, ScoreDoc after, int totalHitsThreshold, boolean supportsConcurrency) Creates a newTopScoreDocCollectorManager
given the number of hits to collect and the number of hits to count accurately. -
Method Summary
Modifier and TypeMethodDescriptionReturn a newCollector
.reduce
(Collection<TopScoreDocCollector> collectors) Reduce the results of individual collectors into a meaningful result.
-
Constructor Details
-
TopScoreDocCollectorManager
public TopScoreDocCollectorManager(int numHits, ScoreDoc after, int totalHitsThreshold, boolean supportsConcurrency) Creates a newTopScoreDocCollectorManager
given the number of hits to collect and the number of hits to count accurately.NOTE: If the total hit count of the top docs is less than or exactly
totalHitsThreshold
then this value is accurate. On the other hand, if theTopDocs.totalHits
value is greater thantotalHitsThreshold
then its value is a lower bound of the hit count. A value ofInteger.MAX_VALUE
will make the hit count accurate but will also likely make query processing slower.NOTE: The instances returned by this method pre-allocate a full array of length
numHits
, and fill the array with sentinel objects.- Parameters:
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.
-
TopScoreDocCollectorManager
Creates a newTopScoreDocCollectorManager
given the number of hits to collect and the number of hits to count accurately, with thread-safe internal states.NOTE: If the total hit count of the top docs is less than or exactly
totalHitsThreshold
then this value is accurate. On the other hand, if theTopDocs.totalHits
value is greater thantotalHitsThreshold
then its value is a lower bound of the hit count. A value ofInteger.MAX_VALUE
will make the hit count accurate but will also likely make query processing slower.NOTE: The instances returned by this method pre-allocate a full array of length
numHits
, and fill the array with sentinel objects.- Parameters:
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.
-
TopScoreDocCollectorManager
public TopScoreDocCollectorManager(int numHits, int totalHitsThreshold) Creates a newTopScoreDocCollectorManager
given the number of hits to collect and the number of hits to count accurately, with thread-safe internal states.NOTE: If the total hit count of the top docs is less than or exactly
totalHitsThreshold
then this value is accurate. On the other hand, if theTopDocs.totalHits
value is greater thantotalHitsThreshold
then its value is a lower bound of the hit count. A value ofInteger.MAX_VALUE
will make the hit count accurate but will also likely make query processing slower.NOTE: The instances returned by this method pre-allocate a full array of length
numHits
, and fill the array with sentinel objects.- Parameters:
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<TopScoreDocCollector,
TopDocs>
-
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<TopScoreDocCollector,
TopDocs> - Throws:
IOException
-