Class MultiTermQuery.TopTermsScoringBooleanQueryRewrite

Enclosing class:
MultiTermQuery

public static final class MultiTermQuery.TopTermsScoringBooleanQueryRewrite extends TopTermsRewrite<BooleanQuery>
A rewrite method that first translates each term into BooleanClause.Occur.SHOULD clause in a BooleanQuery, and keeps the scores as computed by the query.

This rewrite method only uses the top scoring terms so it will not overflow the boolean max clause count. It is the default rewrite method for FuzzyQuery.

See Also:
  • Constructor Details

    • TopTermsScoringBooleanQueryRewrite

      public TopTermsScoringBooleanQueryRewrite(int size)
      Create a TopTermsScoringBooleanQueryRewrite for at most size terms.

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

  • Method Details

    • 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>
    • getTopLevelQuery

      protected BooleanQuery getTopLevelQuery()
      Return a suitable top-level Query for holding all expanded terms.
    • addClause

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

      protected final void addClause(BooleanQuery topLevel, Term term, int docCount, float boost) throws IOException
      Add a MultiTermQuery term to the top-level query
      Throws:
      IOException