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 Detail

      • IndriDisjunctionScorer

        protected IndriDisjunctionScorer​(Weight weight,
                                         java.util.List<Scorer> subScorersList,
                                         ScoreMode scoreMode,
                                         float boost)
    • Method Detail

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

        public java.util.List<Scorer> getSubMatches()
                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • score

        abstract float score​(java.util.List<Scorer> subScorers)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • smoothingScore

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

        public float smoothingScore​(int docId)
                             throws java.io.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:
        java.io.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