Class ReqOptSumScorer


class ReqOptSumScorer extends Scorer
A Scorer for queries with a required part and an optional part. Delays skipTo() on the optional part until a score() is needed.
  • Field Details

    • reqScorer

      private final Scorer reqScorer
    • optScorer

      private final Scorer optScorer
    • reqApproximation

      private final DocIdSetIterator reqApproximation
    • optApproximation

      private final DocIdSetIterator optApproximation
    • optTwoPhase

      private final TwoPhaseIterator optTwoPhase
    • approximation

      private final DocIdSetIterator approximation
    • twoPhase

      private final TwoPhaseIterator twoPhase
    • minScore

      private float minScore
    • reqMaxScore

      private float reqMaxScore
    • optIsRequired

      private boolean optIsRequired
  • Constructor Details

    • ReqOptSumScorer

      public ReqOptSumScorer(Scorer reqScorer, Scorer optScorer, ScoreMode scoreMode) throws IOException
      Construct a ReqOptScorer.
      Parameters:
      reqScorer - The required scorer. This must match.
      optScorer - The optional scorer. This is used for scoring only.
      scoreMode - How the produced scorers will be consumed.
      Throws:
      IOException
  • Method Details

    • 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
    • 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 IOException
      Description copied from class: Scorable
      Returns the score of the current document matching the query.
      Specified by:
      score in class Scorable
      Throws:
      IOException
    • advanceShallow

      public int advanceShallow(int target) throws 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:
      IOException
    • getMaxScore

      public float getMaxScore(int upTo) throws 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:
      IOException
    • setMinCompetitiveScore

      public void setMinCompetitiveScore(float minScore) throws 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:
      IOException
    • getChildren

      public Collection<Scorable.ChildScorable> getChildren()
      Description copied from class: Scorable
      Returns child sub-scorers positioned on the current document
      Overrides:
      getChildren in class Scorable