Class DisjunctionMaxQuery.DisjunctionMaxWeight

java.lang.Object
org.apache.lucene.search.Weight
org.apache.lucene.search.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 Details

    • weights

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

    • DisjunctionMaxWeight

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

    • getQuery

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

      public float getValueForNormalization() throws IOException
      Compute the sub of squared weights of us applied to our subqueries. Used for normalization.
      Specified by:
      getValueForNormalization in class Weight
      Throws:
      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 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
    • explain

      public Explanation explain(AtomicReaderContext context, int doc) throws 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:
      IOException - if an IOException occurs