Class IndriDisjunctionScorer

Direct Known Subclasses:
IndriAndScorer

public abstract class IndriDisjunctionScorer extends IndriScorer
The Indri implemenation of a disjunction scorer which stores the subscorers for the child queries. The score and smoothingScore methods use the list of all subscorers and not just the matches so that a smoothingScore can be calculated if there is not an exact match.
  • Constructor Details

    • IndriDisjunctionScorer

      protected IndriDisjunctionScorer(Weight weight, List<Scorer> subScorersList, ScoreMode scoreMode, float boost)
  • Method Details

    • 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 IndriScorer
    • 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 IndriScorer
      Throws:
      IOException
    • getSubMatches

      public List<Scorer> getSubMatches() throws IOException
      Throws:
      IOException
    • smoothingScore

      public abstract float smoothingScore(List<Scorer> subScorers, int docId) throws IOException
      Throws:
      IOException
    • 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 IndriScorer
      Throws:
      IOException
    • smoothingScore

      public float smoothingScore(int docId) throws IOException
      Description copied from class: Scorable
      Returns the smoothing score of the current document matching the query. This score is used when the query/term does not appear in the document, and behaves like an idf. The smoothing score is particularly important when the Scorer returns a product of probabilities so that the document score does not go to zero when one probability is zero. This can return 0 or a smoothing score.

      Smoothing scores are described in many papers, including: Metzler, D. and Croft, W. B. , "Combining the Language Model and Inference Network Approaches to Retrieval," Information Processing and Management Special Issue on Bayesian Networks and Information Retrieval, 40(5), pp.735-750.

      Specified by:
      smoothingScore in class IndriScorer
      Throws:
      IOException
    • docID

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