Package org.apache.lucene.search
Class TopScoreDocCollector
A
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.
-
Field Summary
Fields inherited from class org.apache.lucene.search.TopDocsCollector
EMPTY_TOPDOCS, pq, totalHits
-
Method Summary
Modifier and TypeMethodDescriptionstatic TopScoreDocCollector
create
(int numHits, boolean docsScoredInOrder) Creates a newTopScoreDocCollector
given the number of hits to collect and whether documents are scored in order by the inputScorer
tosetScorer(Scorer)
.static TopScoreDocCollector
Creates a newTopScoreDocCollector
given the number of hits to collect, the bottom of the previous page, and whether documents are scored in order by the inputScorer
tosetScorer(Scorer)
.protected TopDocs
newTopDocs
(ScoreDoc[] results, int start) Returns aTopDocs
instance containing the given results.void
setNextReader
(AtomicReaderContext context) Called before collecting from eachAtomicReaderContext
.void
Called before successive calls toCollector.collect(int)
.Methods inherited from class org.apache.lucene.search.TopDocsCollector
getTotalHits, populateResults, topDocs, topDocs, topDocs, topDocsSize
Methods inherited from class org.apache.lucene.search.Collector
acceptsDocsOutOfOrder, collect
-
Method Details
-
create
Creates a newTopScoreDocCollector
given the number of hits to collect and whether documents are scored in order by the inputScorer
tosetScorer(Scorer)
.NOTE: The instances returned by this method pre-allocate a full array of length
numHits
, and fill the array with sentinel objects. -
create
Creates a newTopScoreDocCollector
given the number of hits to collect, the bottom of the previous page, and whether documents are scored in order by the inputScorer
tosetScorer(Scorer)
.NOTE: The instances returned by this method pre-allocate a full array of length
numHits
, and fill the array with sentinel objects. -
newTopDocs
Description copied from class:TopDocsCollector
Returns aTopDocs
instance containing the given results. Ifresults
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.- Overrides:
newTopDocs
in classTopDocsCollector<ScoreDoc>
-
setNextReader
Description copied from class:Collector
Called before collecting from eachAtomicReaderContext
. All doc ids inCollector.collect(int)
will correspond toIndexReaderContext.reader()
. AddAtomicReaderContext.docBase
to the currentIndexReaderContext.reader()
's internal document id to re-base ids inCollector.collect(int)
.- Specified by:
setNextReader
in classCollector
- Parameters:
context
- next atomic reader context
-
setScorer
Description copied from class:Collector
Called before successive calls toCollector.collect(int)
. Implementations that need the score of the current document (passed-in toCollector.collect(int)
), should save the passed-in Scorer and call scorer.score() when needed.- Specified by:
setScorer
in classCollector
- Throws:
IOException
-