Package org.apache.lucene.search
Class ReqExclScorer
- java.lang.Object
-
- org.apache.lucene.search.Scorable
-
- org.apache.lucene.search.Scorer
-
- org.apache.lucene.search.ReqExclScorer
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.search.Scorable
Scorable.ChildScorable
-
-
Field Summary
Fields Modifier and Type Field Description private static intADVANCE_COSTEstimation of the number of operations required to call DISI.advance.private DocIdSetIteratorexclApproximationprivate TwoPhaseIteratorexclTwoPhaseIteratorprivate DocIdSetIteratorreqApproximationprivate ScorerreqScorerprivate TwoPhaseIteratorreqTwoPhaseIterator
-
Constructor Summary
Constructors Constructor Description ReqExclScorer(Scorer reqScorer, Scorer exclScorer)Construct aReqExclScorer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intadvanceShallow(int target)Advance to the block of documents that containstargetin order to get scoring information about this block.intdocID()Returns the doc ID that is currently being scored.java.util.Collection<Scorable.ChildScorable>getChildren()Returns child sub-scorers positioned on the current documentfloatgetMaxScore(int upTo)Return the maximum score that documents between the lasttargetthat this iterator wasshallow-advancedto included andupToincluded.DocIdSetIteratoriterator()Return aDocIdSetIteratorover matching documents.private static floatmatchCost(DocIdSetIterator reqApproximation, TwoPhaseIterator reqTwoPhaseIterator, DocIdSetIterator exclApproximation, TwoPhaseIterator exclTwoPhaseIterator)private static booleanmatchesOrNull(TwoPhaseIterator it)Confirms whether or not the givenTwoPhaseIteratormatches on the current document.floatscore()Returns the score of the current document matching the query.voidsetMinCompetitiveScore(float score)Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the givenminScore.TwoPhaseIteratortwoPhaseIterator()Optional method: Return aTwoPhaseIteratorview of thisScorer.
-
-
-
Field Detail
-
reqScorer
private final Scorer reqScorer
-
reqApproximation
private final DocIdSetIterator reqApproximation
-
exclApproximation
private final DocIdSetIterator exclApproximation
-
reqTwoPhaseIterator
private final TwoPhaseIterator reqTwoPhaseIterator
-
exclTwoPhaseIterator
private final TwoPhaseIterator exclTwoPhaseIterator
-
ADVANCE_COST
private static final int ADVANCE_COST
Estimation of the number of operations required to call DISI.advance. This is likely completely wrong, especially given that the cost of this method usually depends on how far you want to advance, but it's probably better than nothing.- See Also:
- Constant Field Values
-
-
Method Detail
-
matchesOrNull
private static boolean matchesOrNull(TwoPhaseIterator it) throws java.io.IOException
Confirms whether or not the givenTwoPhaseIteratormatches on the current document.- Throws:
java.io.IOException
-
iterator
public DocIdSetIterator 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.
-
docID
public int docID()
Description copied from class:ScorableReturns the doc ID that is currently being scored.
-
score
public float score() throws java.io.IOExceptionDescription copied from class:ScorableReturns the score of the current document matching the query.
-
advanceShallow
public int advanceShallow(int target) throws java.io.IOExceptionDescription copied from class:ScorerAdvance to the block of documents that containstargetin order to get scoring information about this block. This method is implicitly called byDocIdSetIterator.advance(int)andDocIdSetIterator.nextDoc()on the returned doc ID. Calling this method doesn't modify the currentDocIdSetIterator.docID(). It returns a number that is greater than or equal to all documents contained in the current block, but less than any doc IDS of the next block.targetmust be >=Scorable.docID()as well as all targets that have been passed toScorer.advanceShallow(int)so far.- Overrides:
advanceShallowin classScorer- Throws:
java.io.IOException
-
getMaxScore
public float getMaxScore(int upTo) throws java.io.IOExceptionDescription copied from class:ScorerReturn the maximum score that documents between the lasttargetthat this iterator wasshallow-advancedto included andupToincluded.- Specified by:
getMaxScorein classScorer- Throws:
java.io.IOException
-
setMinCompetitiveScore
public void setMinCompetitiveScore(float score) throws java.io.IOExceptionDescription 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 useScoreMode.TOP_SCORES, and successive calls may only set increasing values ofminScore.- Overrides:
setMinCompetitiveScorein classScorable- Throws:
java.io.IOException
-
getChildren
public java.util.Collection<Scorable.ChildScorable> getChildren()
Description copied from class:ScorableReturns child sub-scorers positioned on the current document- Overrides:
getChildrenin classScorable
-
matchCost
private static float matchCost(DocIdSetIterator reqApproximation, TwoPhaseIterator reqTwoPhaseIterator, DocIdSetIterator exclApproximation, TwoPhaseIterator exclTwoPhaseIterator)
-
twoPhaseIterator
public TwoPhaseIterator 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 returnedTwoPhaseIterator'sapproximationmust advance synchronously with theScorer.iterator(): advancing the approximation must advance the iterator and vice-versa. Implementing this method is typically useful onScorers that have a high per-document overhead in order to confirm matches. The default implementation returnsnull.- Overrides:
twoPhaseIteratorin classScorer
-
-