Class DisjunctionMaxQuery.DisjunctionMaxWeight

  • Enclosing class:
    DisjunctionMaxQuery

    protected class DisjunctionMaxQuery.DisjunctionMaxWeight
    extends Weight
    Expert: the Weight for DisjunctionMaxQuery, used to normalize, score and explain these queries.

    NOTE: this API and implementation is subject to change suddenly in the next release.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.ArrayList<Weight> weights
      The Weights for our subqueries, in 1-1 correspondence with disjuncts
    • Field Detail

      • weights

        protected java.util.ArrayList<Weight> weights
        The Weights for our subqueries, in 1-1 correspondence with disjuncts
    • Constructor Detail

      • DisjunctionMaxWeight

        public DisjunctionMaxWeight​(IndexSearcher searcher)
                             throws java.io.IOException
        Construct the Weight for this Query searched by searcher. Recursively construct subquery weights.
        Throws:
        java.io.IOException
    • Method Detail

      • getQuery

        public Query getQuery()
        Return our associated DisjunctionMaxQuery
        Specified by:
        getQuery in class Weight
      • getValueForNormalization

        public float getValueForNormalization()
                                       throws java.io.IOException
        Compute the sub of squared weights of us applied to our subqueries. Used for normalization.
        Specified by:
        getValueForNormalization in class Weight
        Throws:
        java.io.IOException
      • normalize

        public void normalize​(float norm,
                              float topLevelBoost)
        Apply the computed normalization factor to our subqueries
        Specified by:
        normalize in class Weight
      • scorer

        public Scorer scorer​(AtomicReaderContext context,
                             boolean scoreDocsInOrder,
                             boolean topScorer,
                             Bits acceptDocs)
                      throws java.io.IOException
        Create the scorer used to score our associated DisjunctionMaxQuery
        Specified by:
        scorer in class Weight
        Parameters:
        context - the AtomicReaderContext for which to return the Scorer.
        scoreDocsInOrder - specifies whether in-order scoring of documents is required. Note that if set to false (i.e., out-of-order scoring is required), this method can return whatever scoring mode it supports, as every in-order scorer is also an out-of-order one. However, an out-of-order scorer may not support DocIdSetIterator.nextDoc() and/or DocIdSetIterator.advance(int), therefore it is recommended to request an in-order scorer if use of these methods is required.
        topScorer - if true, Scorer.score(Collector) will be called; if false, DocIdSetIterator.nextDoc() and/or DocIdSetIterator.advance(int) will be called.
        acceptDocs - Bits that represent the allowable docs to match (typically deleted docs but possibly filtering other documents)
        Returns:
        a Scorer which scores documents in/out-of order.
        Throws:
        java.io.IOException - if there is a low-level I/O error
      • explain

        public Explanation explain​(AtomicReaderContext context,
                                   int doc)
                            throws java.io.IOException
        Explain the score we computed for doc
        Specified by:
        explain in class Weight
        Parameters:
        context - the readers context to create the Explanation for.
        doc - the document's id relative to the given context's reader
        Returns:
        an Explanation for the score
        Throws:
        java.io.IOException - if an IOException occurs