public abstract class TopFieldCollector extends TopDocsCollector<FieldValueHitQueue.Entry>
Collectorthat sorts by
FieldComparators. See the
create(org.apache.lucene.search.Sort, int, boolean, boolean, boolean, boolean)method for instantiating a TopFieldCollector.
EMPTY_TOPDOCS, pq, totalHits
|Modifier and Type||Method and Description|
Creates a new
Populates the results array with the ScoreDoc instances.
getTotalHits, topDocs, topDocs, topDocs, topDocsSize
collect, setNextReader, setScorer
public static TopFieldCollector create(Sort sort, int numHits, boolean fillFields, boolean trackDocScores, boolean trackMaxScore, boolean docsScoredInOrder) throws IOException
TopFieldCollectorfrom the given arguments.
NOTE: The instances returned by this method
pre-allocate a full array of length
sort- the sort criteria (SortFields).
numHits- the number of results to collect.
fillFields- specifies whether the actual field values should be returned on the results (FieldDoc).
trackDocScores- specifies whether document scores should be tracked and set on the results. Note that if set to false, then the results' scores will be set to Float.NaN. Setting this to true affects performance, as it incurs the score computation on each competitive result. Therefore if document scores are not required by the application, it is recommended to set it to false.
trackMaxScore- specifies whether the query's maxScore should be tracked and set on the resulting
TopDocs. Note that if set to false,
TopDocs.getMaxScore()returns Float.NaN. Setting this to true affects performance as it incurs the score computation on each result. Also, setting this true automatically sets
trackDocScoresto true as well.
docsScoredInOrder- specifies whether documents are scored in doc Id order or not by the given
TopFieldCollectorinstance which will sort the results by the sort criteria.
protected void populateResults(ScoreDoc results, int howMany)
protected TopDocs newTopDocs(ScoreDoc results, int start)
TopDocsinstance containing the given results. If
resultsis 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.
public boolean acceptsDocsOutOfOrder()
trueif this collector does not require the matching docIDs to be delivered in int sort order (smallest to largest) to
Most Lucene Query implementations will visit
matching docIDs in order. However, some queries
(currently limited to certain cases of
BooleanQuery) can achieve faster searching if the
Collector allows them to deliver the
docIDs out of order.
Many collectors don't mind getting docIDs out of
order, so it's important to return