Package org.apache.lucene.search
Class TopFieldCollector
- java.lang.Object
-
- org.apache.lucene.search.TopDocsCollector<FieldValueHitQueue.Entry>
-
- org.apache.lucene.search.TopFieldCollector
-
- All Implemented Interfaces:
Collector
public abstract class TopFieldCollector extends TopDocsCollector<FieldValueHitQueue.Entry>
ACollectorthat sorts bySortFieldusingFieldComparators.See the
create(org.apache.lucene.search.Sort, int, int)method for instantiating a TopFieldCollector.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.search.TopDocsCollector
EMPTY_TOPDOCS, pq, totalHits, totalHitsRelation
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TopFieldCollectorcreate(Sort sort, int numHits, int totalHitsThreshold)Creates a newTopFieldCollectorfrom the given arguments.static TopFieldCollectorcreate(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold)Creates a newTopFieldCollectorfrom the given arguments.static CollectorManager<TopFieldCollector,TopFieldDocs>createSharedManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold)Create a CollectorManager which uses a shared hit counter to maintain number of hits and a sharedMaxScoreAccumulatorto propagate the minimum score accross segments if the primary sort is by relevancy.booleanisEarlyTerminated()Return whether collection terminated early.protected TopDocsnewTopDocs(ScoreDoc[] results, int start)Returns aTopDocsinstance containing the given results.protected voidpopulateResults(ScoreDoc[] results, int howMany)Populates the results array with the ScoreDoc instances.static voidpopulateScores(ScoreDoc[] topDocs, IndexSearcher searcher, Query query)Populatescoresof the giventopDocs.ScoreModescoreMode()Indicates what features are required from the scorer.TopFieldDocstopDocs()Returns the top docs that were collected by this collector.protected voidupdateGlobalMinCompetitiveScore(Scorable scorer)protected voidupdateMinCompetitiveScore(Scorable scorer)-
Methods inherited from class org.apache.lucene.search.TopDocsCollector
getTotalHits, topDocs, topDocs, topDocsSize
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.search.Collector
getLeafCollector
-
-
-
-
Method Detail
-
scoreMode
public ScoreMode scoreMode()
Description copied from interface:CollectorIndicates what features are required from the scorer.
-
updateGlobalMinCompetitiveScore
protected void updateGlobalMinCompetitiveScore(Scorable scorer) throws IOException
- Throws:
IOException
-
updateMinCompetitiveScore
protected void updateMinCompetitiveScore(Scorable scorer) throws IOException
- Throws:
IOException
-
create
public static TopFieldCollector create(Sort sort, int numHits, int totalHitsThreshold)
Creates a newTopFieldCollectorfrom 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.totalHitsThreshold- the number of docs to count accurately. If the query matches more thantotalHitsThresholdhits then its hit count will be a lower bound. On the other hand if the query matches less than or exactlytotalHitsThresholdhits then the hit count of the result will be accurate.Integer.MAX_VALUEmay be used to make the hit count accurate, but this will also make query processing slower.- Returns:
- a
TopFieldCollectorinstance which will sort the results by the sort criteria.
-
create
public static TopFieldCollector create(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold)
Creates a newTopFieldCollectorfrom 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- only hits after this FieldDoc will be collectedtotalHitsThreshold- the number of docs to count accurately. If the query matches more thantotalHitsThresholdhits then its hit count will be a lower bound. On the other hand if the query matches less than or exactlytotalHitsThresholdhits then the hit count of the result will be accurate.Integer.MAX_VALUEmay be used to make the hit count accurate, but this will also make query processing slower.- Returns:
- a
TopFieldCollectorinstance which will sort the results by the sort criteria.
-
createSharedManager
public static CollectorManager<TopFieldCollector,TopFieldDocs> createSharedManager(Sort sort, int numHits, FieldDoc after, int totalHitsThreshold)
Create a CollectorManager which uses a shared hit counter to maintain number of hits and a sharedMaxScoreAccumulatorto propagate the minimum score accross segments if the primary sort is by relevancy.
-
populateScores
public static void populateScores(ScoreDoc[] topDocs, IndexSearcher searcher, Query query) throws IOException
Populatescoresof the giventopDocs.- Parameters:
topDocs- the top docs to populatesearcher- the index searcher that has been used to computetopDocsquery- the query that has been used to computetopDocs- Throws:
IllegalArgumentException- if there is evidence thattopDocshave been computed against a different searcher or a different query.IOException- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
populateResults
protected void populateResults(ScoreDoc[] results, int howMany)
Description copied from class:TopDocsCollectorPopulates the results array with the ScoreDoc instances. This can be overridden in case a different ScoreDoc type should be returned.- Overrides:
populateResultsin classTopDocsCollector<FieldValueHitQueue.Entry>
-
newTopDocs
protected TopDocs newTopDocs(ScoreDoc[] results, int start)
Description copied from class:TopDocsCollectorReturns aTopDocsinstance containing the given results. Ifresultsis null it means there are no results to return, either because there were 0 calls to collect() or because the arguments to topDocs were invalid.- Overrides:
newTopDocsin classTopDocsCollector<FieldValueHitQueue.Entry>
-
topDocs
public TopFieldDocs topDocs()
Description copied from class:TopDocsCollectorReturns the top docs that were collected by this collector.- Overrides:
topDocsin classTopDocsCollector<FieldValueHitQueue.Entry>
-
isEarlyTerminated
public boolean isEarlyTerminated()
Return whether collection terminated early.
-
-