org.apache.lucene.search

## Class MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite

- java.lang.Object
- - org.apache.lucene.search.MultiTermQuery.RewriteMethod
  - - org.apache.lucene.search.TopTermsRewrite<BooleanQuery.Builder>
    - - org.apache.lucene.search.MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite

Enclosing class:
  MultiTermQuery

    public static final class MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite
    extends TopTermsRewrite<BooleanQuery.Builder>

A rewrite method that first translates each term into `BooleanClause.Occur.SHOULD` clause in a BooleanQuery, but the scores are only computed as the boost.

This rewrite method only uses the top scoring terms so it will not overflow the boolean max clause count.

See Also:
  `MultiTermQuery.setRewriteMethod(org.apache.lucene.search.MultiTermQuery.RewriteMethod)`

### Constructor Summary

Constructors
Constructor and Description
`TopTermsBoostOnlyBooleanQueryRewrite(int size)` Create a TopTermsBoostOnlyBooleanQueryRewrite for at most `size` terms.

### Method Summary

All Methods Instance Methods Concrete Methods
`protected void` `addClause(BooleanQuery.Builder topLevel, Term term, int docFreq, float boost, TermStates states)`
`protected void` `addClause(B topLevel, Term term, int docCount, float boost)` Add a MultiTermQuery term to the top-level query builder.
`protected Query` `build(BooleanQuery.Builder builder)` Finalize the creation of the query from the builder.
`protected int` `getMaxSize()` return the maximum size of the priority queue (for boolean rewrites this is BooleanQuery#getMaxClauseCount).
`protected BooleanQuery.Builder` `getTopLevelBuilder()` Return a suitable builder for the top-level Query for holding all expanded terms.

### Methods inherited from class org.apache.lucene.search.TopTermsRewrite

`equals, getSize, hashCode, rewrite`

### Methods inherited from class org.apache.lucene.search.MultiTermQuery.RewriteMethod

`getTermsEnum`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### TopTermsBoostOnlyBooleanQueryRewrite

    public TopTermsBoostOnlyBooleanQueryRewrite(int size)

Create a TopTermsBoostOnlyBooleanQueryRewrite for at most `size` terms.

NOTE: if `BooleanQuery.getMaxClauseCount()` is smaller than `size`, then it will be used instead.

### Method Detail

#### getMaxSize

    protected int getMaxSize()

Description copied from class: `TopTermsRewrite`
return the maximum size of the priority queue (for boolean rewrites this is BooleanQuery#getMaxClauseCount).

Specified by:
  `getMaxSize` in class `TopTermsRewrite<BooleanQuery.Builder>`

#### getTopLevelBuilder

    protected BooleanQuery.Builder getTopLevelBuilder()

Return a suitable builder for the top-level Query for holding all expanded terms.

#### build

    protected Query build(BooleanQuery.Builder builder)

Finalize the creation of the query from the builder.

#### addClause

    protected void addClause(BooleanQuery.Builder topLevel,
                             Term term,
                             int docFreq,
                             float boost,
                             TermStates states)

#### addClause

    protected final void addClause(B topLevel,
                                   Term term,
                                   int docCount,
                                   float boost)
                            throws IOException

Add a MultiTermQuery term to the top-level query builder.

Throws:
  `IOException`