Class ConstantScoreScorer
Scorer.- NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.search.Scorable
Scorable.ChildScorable -
Constructor Summary
ConstructorsConstructorDescriptionConstantScoreScorer(float score, ScoreMode scoreMode, DocIdSetIterator disi) Constructor based on aDocIdSetIteratorwhich will be used to drive iteration.ConstantScoreScorer(float score, ScoreMode scoreMode, TwoPhaseIterator twoPhaseIterator) Constructor based on aTwoPhaseIterator. -
Method Summary
Modifier and TypeMethodDescriptionintdocID()Returns the doc ID that is currently being scored.floatgetMaxScore(int upTo) Return the maximum score that documents between the lasttargetthat this iterator wasshallow-advancedto included andupToincluded.iterator()Return aDocIdSetIteratorover matching documents.voidnextDocsAndScores(int upTo, Bits liveDocs, DocAndFloatFeatureBuffer buffer) Return a new batch of doc IDs and scores, starting at the current doc ID, and ending beforeupTo.floatscore()Returns the score of the current document matching the query.voidsetMinCompetitiveScore(float minScore) Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the givenminScore.Optional method: Return aTwoPhaseIteratorview of thisScorer.Methods inherited from class org.apache.lucene.search.Scorer
advanceShallowMethods inherited from class org.apache.lucene.search.Scorable
getChildren, smoothingScore
-
Constructor Details
-
ConstantScoreScorer
Constructor based on aDocIdSetIteratorwhich will be used to drive iteration. Two phase iteration will not be supported.- Parameters:
score- the score to return on each documentscoreMode- the score modedisi- the iterator that defines matching documents
-
ConstantScoreScorer
Constructor based on aTwoPhaseIterator. In that case theScorerwill support two-phase iteration.- Parameters:
score- the score to return on each documentscoreMode- the score modetwoPhaseIterator- the iterator that defines matching documents
-
-
Method Details
-
getMaxScore
Description copied from class:ScorerReturn the maximum score that documents between the lasttargetthat this iterator wasshallow-advancedto included andupToincluded.- Specified by:
getMaxScorein classScorer- Throws:
IOException
-
setMinCompetitiveScore
Description copied from class:ScorableOptional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the givenminScore. This is a no-op by default.This method may only be called from collectors that use
ScoreMode.TOP_SCORES, and successive calls may only set increasing values ofminScore.- Overrides:
setMinCompetitiveScorein classScorable- Throws:
IOException
-
iterator
Description copied from class:ScorerReturn aDocIdSetIteratorover matching documents.The returned iterator will either be positioned on
-1if no documents have been scored yet,DocIdSetIterator.NO_MORE_DOCSif all documents have been scored already, or the last document id that has been scored otherwise.The returned iterator is a view: calling this method several times will return iterators that have the same state.
-
twoPhaseIterator
Description copied from class:ScorerOptional method: Return aTwoPhaseIteratorview of thisScorer. A return value ofnullindicates that two-phase iteration is not supported.Note that the returned
TwoPhaseIterator'sapproximationmust advance synchronously with theScorer.iterator(): advancing the approximation must advance the iterator and vice-versa.Implementing this method is typically useful on
Scorers that have a high per-document overhead in order to confirm matches.The default implementation returns
null.- Overrides:
twoPhaseIteratorin classScorer
-
docID
public int docID()Description copied from class:ScorerReturns the doc ID that is currently being scored. -
score
Description copied from class:ScorableReturns the score of the current document matching the query.- Specified by:
scorein classScorable- Throws:
IOException
-
nextDocsAndScores
public void nextDocsAndScores(int upTo, Bits liveDocs, DocAndFloatFeatureBuffer buffer) throws IOException Description copied from class:ScorerReturn a new batch of doc IDs and scores, starting at the current doc ID, and ending beforeupTo. Because it starts on the current doc ID, it is illegal to call this method if thecurrent doc IDis-1.An empty return value indicates that there are no postings left between the current doc ID and
upTo.Implementations should ideally fill the buffer with a number of entries comprised between 8 and a couple hundreds, to keep heap requirements contained, while still being large enough to enable operations on the buffer to auto-vectorize efficiently.
The default implementation is provided below:
int batchSize = 64; // arbitrary buffer.growNoCopy(batchSize); int size = 0; DocIdSetIterator iterator = iterator(); for (int doc = docID(); doc < upTo && size < batchSize; doc = iterator.nextDoc()) { if (liveDocs == null || liveDocs.get(doc)) { buffer.docs[size] = doc; buffer.scores[size] = score(); ++size; } } buffer.size = size;NOTE: The provided
DocAndFloatFeatureBuffershould not hold references to internal data structures.NOTE: In case this
Scorerexposes aTwoPhaseIterator, it should be positioned on a matching document before this method is called.- Overrides:
nextDocsAndScoresin classScorer- Throws:
IOException
-