public abstract class

TopFieldCollector

extends TopDocsCollector<T extends ScoreDoc>
java.lang.Object
   ↳ org.apache.lucene.search.Collector
     ↳ org.apache.lucene.search.TopDocsCollector<T extends org.apache.lucene.search.ScoreDoc>
       ↳ org.apache.lucene.search.TopFieldCollector

Class Overview

A Collector that sorts by SortField using FieldComparators.

See the create(org.apache.lucene.search.Sort, int, boolean, boolean, boolean, boolean) method for instantiating a TopFieldCollector.

NOTE: This API is experimental and might change in incompatible ways in the next release.

Summary

[Expand]
Inherited Fields
From class org.apache.lucene.search.TopDocsCollector
Public Methods
boolean acceptsDocsOutOfOrder()
Return true if this collector does not require the matching docIDs to be delivered in int sort order (smallest to largest) to collect(int).
static TopFieldCollector create(Sort sort, int numHits, boolean fillFields, boolean trackDocScores, boolean trackMaxScore, boolean docsScoredInOrder)
Creates a new TopFieldCollector from the given arguments.
Protected Methods
TopDocs newTopDocs(ScoreDoc[] results, int start)
Returns a TopDocs instance containing the given results.
void populateResults(ScoreDoc[] results, int howMany)
Populates the results array with the ScoreDoc instaces.
[Expand]
Inherited Methods
From class org.apache.lucene.search.TopDocsCollector
From class org.apache.lucene.search.Collector
From class java.lang.Object

Public Methods

public boolean acceptsDocsOutOfOrder ()

Return true if this collector does not require the matching docIDs to be delivered in int sort order (smallest to largest) to collect(int).

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 true here.

public static TopFieldCollector create (Sort sort, int numHits, boolean fillFields, boolean trackDocScores, boolean trackMaxScore, boolean docsScoredInOrder)

Creates a new TopFieldCollector 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.
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, 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 trackDocScores to true as well.
docsScoredInOrder specifies whether documents are scored in doc Id order or not by the given Scorer in setScorer(Scorer).
Returns
Throws
IOException

Protected Methods

protected TopDocs newTopDocs (ScoreDoc[] results, int start)

Returns a TopDocs instance containing the given results. If results is 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.

protected void populateResults (ScoreDoc[] results, int howMany)

Populates the results array with the ScoreDoc instaces. This can be overridden in case a different ScoreDoc type should be returned.