Class ReqExclScorer


  • class ReqExclScorer
    extends Scorer
    A Scorer for queries with a required subscorer and an excluding (prohibited) sub Scorer.
    • Field Detail

      • reqScorer

        private final Scorer reqScorer
      • 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
    • Constructor Detail

      • ReqExclScorer

        public ReqExclScorer​(Scorer reqScorer,
                             Scorer exclScorer)
        Construct a ReqExclScorer.
        Parameters:
        reqScorer - The scorer that must match, except where
        exclScorer - indicates exclusion.
    • Method Detail

      • matchesOrNull

        private static boolean matchesOrNull​(TwoPhaseIterator it)
                                      throws java.io.IOException
        Confirms whether or not the given TwoPhaseIterator matches on the current document.
        Throws:
        java.io.IOException
      • iterator

        public DocIdSetIterator iterator()
        Description copied from class: Scorer
        Return a DocIdSetIterator over matching documents. The returned iterator will either be positioned on -1 if no documents have been scored yet, DocIdSetIterator.NO_MORE_DOCS if 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.
        Specified by:
        iterator in class Scorer
      • docID

        public int docID()
        Description copied from class: Scorable
        Returns the doc ID that is currently being scored.
        Specified by:
        docID in class Scorable
      • score

        public float score()
                    throws java.io.IOException
        Description copied from class: Scorable
        Returns the score of the current document matching the query.
        Specified by:
        score in class Scorable
        Throws:
        java.io.IOException
      • advanceShallow

        public int advanceShallow​(int target)
                           throws java.io.IOException
        Description copied from class: Scorer
        Advance to the block of documents that contains target in order to get scoring information about this block. This method is implicitly called by DocIdSetIterator.advance(int) and DocIdSetIterator.nextDoc() on the returned doc ID. Calling this method doesn't modify the current DocIdSetIterator.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. target must be >= Scorable.docID() as well as all targets that have been passed to Scorer.advanceShallow(int) so far.
        Overrides:
        advanceShallow in class Scorer
        Throws:
        java.io.IOException
      • getMaxScore

        public float getMaxScore​(int upTo)
                          throws java.io.IOException
        Description copied from class: Scorer
        Return the maximum score that documents between the last target that this iterator was shallow-advanced to included and upTo included.
        Specified by:
        getMaxScore in class Scorer
        Throws:
        java.io.IOException
      • setMinCompetitiveScore

        public void setMinCompetitiveScore​(float score)
                                    throws java.io.IOException
        Description copied from class: Scorable
        Optional method: Tell the scorer that its iterator may safely ignore all documents whose score is less than the given minScore. 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 of minScore.
        Overrides:
        setMinCompetitiveScore in class Scorable
        Throws:
        java.io.IOException
      • twoPhaseIterator

        public TwoPhaseIterator twoPhaseIterator()
        Description copied from class: Scorer
        Optional method: Return a TwoPhaseIterator view of this Scorer. A return value of null indicates that two-phase iteration is not supported. Note that the returned TwoPhaseIterator's approximation must advance synchronously with the Scorer.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:
        twoPhaseIterator in class Scorer