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 Detail

      • weights

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

      • DisjunctionMaxWeight

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

      • getQuery

        public Query getQuery()
        Return our associated DisjunctionMaxQuery
        Specified by:
        getQuery in class Weight
      • 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 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:
        IOException - if there is a low-level I/O error