Package org.apache.lucene.search
Class TopTermsRewrite<Q extends Query>
- java.lang.Object
-
- org.apache.lucene.search.MultiTermQuery.RewriteMethod
-
- org.apache.lucene.search.TopTermsRewrite<Q>
-
- Direct Known Subclasses:
MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite
,MultiTermQuery.TopTermsScoringBooleanQueryRewrite
public abstract class TopTermsRewrite<Q extends Query> extends MultiTermQuery.RewriteMethod
Base rewrite method for collecting only the top terms via a priority queue.
-
-
Constructor Summary
Constructors Constructor Description TopTermsRewrite(int size)
Create a TopTermsBooleanQueryRewrite for at mostsize
terms.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addClause(Q topLevel, Term term, int docCount, float boost)
Add a MultiTermQuery term to the top-level queryprotected abstract void
addClause(Q topLevel, Term term, int docCount, float boost, TermContext states)
boolean
equals(java.lang.Object obj)
protected abstract int
getMaxSize()
return the maximum size of the priority queue (for boolean rewrites this is BooleanQuery#getMaxClauseCount).int
getSize()
return the maximum priority queue sizeprotected abstract Q
getTopLevelQuery()
Return a suitable top-level Query for holding all expanded terms.int
hashCode()
Q
rewrite(IndexReader reader, MultiTermQuery query)
-
Methods inherited from class org.apache.lucene.search.MultiTermQuery.RewriteMethod
getTermsEnum
-
-
-
-
Constructor Detail
-
TopTermsRewrite
public TopTermsRewrite(int size)
Create a TopTermsBooleanQueryRewrite for at mostsize
terms.NOTE: if
BooleanQuery.getMaxClauseCount()
is smaller thansize
, then it will be used instead.
-
-
Method Detail
-
getSize
public int getSize()
return the maximum priority queue size
-
getMaxSize
protected abstract int getMaxSize()
return the maximum size of the priority queue (for boolean rewrites this is BooleanQuery#getMaxClauseCount).
-
rewrite
public final Q rewrite(IndexReader reader, MultiTermQuery query) throws java.io.IOException
- Specified by:
rewrite
in classMultiTermQuery.RewriteMethod
- Throws:
java.io.IOException
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
getTopLevelQuery
protected abstract Q getTopLevelQuery() throws java.io.IOException
Return a suitable top-level Query for holding all expanded terms.- Throws:
java.io.IOException
-
addClause
protected final void addClause(Q topLevel, Term term, int docCount, float boost) throws java.io.IOException
Add a MultiTermQuery term to the top-level query- Throws:
java.io.IOException
-
addClause
protected abstract void addClause(Q topLevel, Term term, int docCount, float boost, TermContext states) throws java.io.IOException
- Throws:
java.io.IOException
-
-