## org.apache.lucene.search
Class MultiTermQuery.ConstantScoreAutoRewrite

    java.lang.Object
      org.apache.lucene.search.MultiTermQuery.RewriteMethod
          org.apache.lucene.search.MultiTermQuery.ConstantScoreAutoRewrite

Enclosing class:
  MultiTermQuery

    public static class MultiTermQuery.ConstantScoreAutoRewrite

extends MultiTermQuery.RewriteMethod

A rewrite method that tries to pick the best constant-score rewrite method based on term and document counts from the query. If both the number of terms and documents is small enough, then `MultiTermQuery.CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE` is used. Otherwise, `MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE` is used.

Field Summary
`static double` `DEFAULT_DOC_COUNT_PERCENT`
`static int` `DEFAULT_TERM_COUNT_CUTOFF`

Constructor Summary
`MultiTermQuery.ConstantScoreAutoRewrite()`

Method Summary
`protected void` `addClause(BooleanQuery topLevel, Term term, int docFreq, float boost, TermContext states)`
`protected void` `addClause(Q topLevel, Term term, int docCount, float boost)` Add a MultiTermQuery term to the top-level query
`boolean` `equals(Object obj)`
`double` `getDocCountPercent()`
`int` `getTermCountCutoff()`
`protected BooleanQuery` `getTopLevelQuery()` Return a suitable top-level Query for holding all expanded terms.
`int` `hashCode()`
`Query` `rewrite(IndexReader reader, MultiTermQuery query)`
`void` `setDocCountPercent(double percent)` If the number of documents to be visited in the postings exceeds this specified percentage of the maxDoc() for the index, then `MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE` is used.
`void` `setTermCountCutoff(int count)` If the number of terms in this query is equal to or larger than this setting then `MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE` is used.

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`

Field Detail

### DEFAULT_TERM_COUNT_CUTOFF

    public static int DEFAULT_TERM_COUNT_CUTOFF

### DEFAULT_DOC_COUNT_PERCENT

    public static double DEFAULT_DOC_COUNT_PERCENT

Constructor Detail

### MultiTermQuery.ConstantScoreAutoRewrite

    public MultiTermQuery.ConstantScoreAutoRewrite()

Method Detail

### setTermCountCutoff

    public void setTermCountCutoff(int count)

  If the number of terms in this query is equal to or larger than this setting then `MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE` is used.

### getTermCountCutoff

    public int getTermCountCutoff()

  See Also:
    `setTermCountCutoff(int)`

### setDocCountPercent

    public void setDocCountPercent(double percent)

  If the number of documents to be visited in the postings exceeds this specified percentage of the maxDoc() for the index, then `MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE` is used.

  Parameters:
    `percent` - 0.0 to 100.0

### getDocCountPercent

    public double getDocCountPercent()

  See Also:
    `setDocCountPercent(double)`

### getTopLevelQuery

    protected BooleanQuery getTopLevelQuery()

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

### addClause

    protected void addClause(BooleanQuery topLevel,
                             Term term,
                             int docFreq,
                             float boost,
                             TermContext states)

### rewrite

    public Query rewrite(IndexReader reader,
                         MultiTermQuery query)
                  throws IOException

  Specified by:
    `rewrite` in class `MultiTermQuery.RewriteMethod`
  Throws:
    `IOException`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

### equals

    public boolean equals(Object obj)

  Overrides:
    `equals` in class `Object`

### addClause

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

  Add a MultiTermQuery term to the top-level query

  Throws:
    `IOException`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.