## org.apache.lucene.search
Class DisjunctionMaxQuery.DisjunctionMaxWeight

    java.lang.Object
      org.apache.lucene.search.Weight
          org.apache.lucene.search.DisjunctionMaxQuery.DisjunctionMaxWeight

All Implemented Interfaces:
  Serializable

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.

See Also:
  Serialized Form

Field Summary
`protected Similarity` `similarity` The Similarity implementation.
`protected ArrayList<Weight>` `weights` The Weights for our subqueries, in 1-1 correspondence with disjuncts

Constructor Summary
`DisjunctionMaxQuery.DisjunctionMaxWeight(Searcher searcher)` Construct the Weight for this Query searched by searcher.

Method Summary
`Explanation` `explain(IndexReader reader, int doc)` Explain the score we computed for doc
`Query` `getQuery()` Return our associated DisjunctionMaxQuery
`float` `getValue()` Return our boost
`void` `normalize(float norm)` Apply the computed normalization factor to our subqueries
`Scorer` `scorer(IndexReader reader, boolean scoreDocsInOrder, boolean topScorer)` Create the scorer used to score our associated DisjunctionMaxQuery
`float` `sumOfSquaredWeights()` Compute the sub of squared weights of us applied to our subqueries.

Methods inherited from class org.apache.lucene.search.Weight
`scoresDocsOutOfOrder`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### similarity

    protected Similarity similarity

  The Similarity implementation.

### weights

    protected ArrayList<Weight> weights

  The Weights for our subqueries, in 1-1 correspondence with disjuncts

Constructor Detail

### DisjunctionMaxQuery.DisjunctionMaxWeight

    public DisjunctionMaxQuery.DisjunctionMaxWeight(Searcher 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`

### getValue

    public float getValue()

  Return our boost

  Specified by:
    `getValue` in class `Weight`

### sumOfSquaredWeights

    public float sumOfSquaredWeights()
                              throws IOException

  Compute the sub of squared weights of us applied to our subqueries. Used for normalization.

  Specified by:
    `sumOfSquaredWeights` in class `Weight`
  Throws:
    `IOException`

### normalize

    public void normalize(float norm)

  Apply the computed normalization factor to our subqueries

  Specified by:
    `normalize` in class `Weight`

### scorer

    public Scorer scorer(IndexReader reader,
                         boolean scoreDocsInOrder,
                         boolean topScorer)
                  throws IOException

  Create the scorer used to score our associated DisjunctionMaxQuery

  Specified by:
    `scorer` in class `Weight`
  Parameters:
    `reader` - the `IndexReader` 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.
  Returns:
    a `Scorer` which scores documents in/out-of order.
  Throws:
    `IOException`

### explain

    public Explanation explain(IndexReader reader,
                               int doc)
                        throws IOException

  Explain the score we computed for doc

  Specified by:
    `explain` in class `Weight`
  Parameters:
    `reader` - sub-reader containing the give doc
  Returns:
    an Explanation for the score
  Throws:
    `IOException`