public abstract class TopScoreDocCollector extends TopDocsCollector<ScoreDoc>
Collector implementation that collects the top-scoring hits,
returning them as a TopDocs. This is used by IndexSearcher to
implement TopDocs-based search. Hits are sorted by score descending
and then (when the scores are tied) docID ascending. When you create an
instance of this collector you should know in advance whether documents are
going to be collected in doc Id order or not.
NOTE: The values Float.NaN and
Float.NEGATIVE_INFINITY are not valid scores. This
collector will not properly collect hits with such
scores.
EMPTY_TOPDOCS, pq, totalHits| Modifier and Type | Method and Description |
|---|---|
static TopScoreDocCollector |
create(int numHits,
boolean docsScoredInOrder)
Creates a new
TopScoreDocCollector given the number of hits to
collect and whether documents are scored in order by the input
Scorer to setScorer(Scorer). |
static TopScoreDocCollector |
create(int numHits,
ScoreDoc after,
boolean docsScoredInOrder)
Creates a new
TopScoreDocCollector given the number of hits to
collect, the bottom of the previous page, and whether documents are scored in order by the input
Scorer to setScorer(Scorer). |
protected TopDocs |
newTopDocs(ScoreDoc[] results,
int start)
Returns a
TopDocs instance containing the given results. |
void |
setNextReader(AtomicReaderContext context)
Called before collecting from each
AtomicReaderContext. |
void |
setScorer(Scorer scorer)
Called before successive calls to
Collector.collect(int). |
getTotalHits, populateResults, topDocs, topDocs, topDocs, topDocsSizeacceptsDocsOutOfOrder, collectpublic static TopScoreDocCollector create(int numHits, boolean docsScoredInOrder)
TopScoreDocCollector given the number of hits to
collect and whether documents are scored in order by the input
Scorer to setScorer(Scorer).
NOTE: The instances returned by this method
pre-allocate a full array of length
numHits, and fill the array with sentinel
objects.
public static TopScoreDocCollector create(int numHits, ScoreDoc after, boolean docsScoredInOrder)
TopScoreDocCollector given the number of hits to
collect, the bottom of the previous page, and whether documents are scored in order by the input
Scorer to setScorer(Scorer).
NOTE: The instances returned by this method
pre-allocate a full array of length
numHits, and fill the array with sentinel
objects.
protected TopDocs newTopDocs(ScoreDoc[] results, int start)
TopDocsCollectorTopDocs 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.newTopDocs in class TopDocsCollector<ScoreDoc>public void setNextReader(AtomicReaderContext context)
CollectorAtomicReaderContext. All doc ids in
Collector.collect(int) will correspond to IndexReaderContext.reader().
Add AtomicReaderContext.docBase to the current IndexReaderContext.reader()'s
internal document id to re-base ids in Collector.collect(int).setNextReader in class Collectorcontext - next atomic reader contextpublic void setScorer(Scorer scorer) throws IOException
CollectorCollector.collect(int). Implementations
that need the score of the current document (passed-in to
Collector.collect(int)), should save the passed-in Scorer and call
scorer.score() when needed.setScorer in class CollectorIOExceptionCopyright © 2000-2014 Apache Software Foundation. All Rights Reserved.