public abstract class ScoringRewrite<Q extends Query> extends MultiTermQuery.RewriteMethod
| Modifier and Type | Class and Description |
|---|---|
protected static interface |
TermCollectingRewrite.TermCollector |
| Modifier and Type | Field and Description |
|---|---|
static MultiTermQuery.RewriteMethod |
CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE
Like
SCORING_BOOLEAN_QUERY_REWRITE except
scores are not computed. |
static ScoringRewrite<BooleanQuery> |
SCORING_BOOLEAN_QUERY_REWRITE
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. |
| Constructor and Description |
|---|
ScoringRewrite() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
addClause(Q topLevel,
Term term,
float boost)
Add a MultiTermQuery term to the top-level query
|
protected void |
collectTerms(IndexReader reader,
MultiTermQuery query,
TermCollectingRewrite.TermCollector collector) |
protected abstract Q |
getTopLevelQuery()
Return a suitable top-level Query for holding all expanded terms.
|
Q |
rewrite(IndexReader reader,
MultiTermQuery query) |
getTermsEnumpublic static final ScoringRewrite<BooleanQuery> SCORING_BOOLEAN_QUERY_REWRITE
BooleanClause.Occur.SHOULD clause in a
BooleanQuery, and keeps the scores as computed by the
query. Note that typically such scores are
meaningless to the user, and require non-trivial CPU
to compute, so it's almost always better to use MultiTermQuery.CONSTANT_SCORE_AUTO_REWRITE_DEFAULT instead.
NOTE: This rewrite method will hit BooleanQuery.TooManyClauses if the number of terms
exceeds BooleanQuery.getMaxClauseCount().
public static final MultiTermQuery.RewriteMethod CONSTANT_SCORE_BOOLEAN_QUERY_REWRITE
SCORING_BOOLEAN_QUERY_REWRITE except
scores are not computed. Instead, each matching
document receives a constant score equal to the
query's boost.
NOTE: This rewrite method will hit BooleanQuery.TooManyClauses if the number of terms
exceeds BooleanQuery.getMaxClauseCount().
public Q rewrite(IndexReader reader, MultiTermQuery query) throws IOException
rewrite in class MultiTermQuery.RewriteMethodIOExceptionprotected abstract Q getTopLevelQuery()
throws IOException
IOExceptionprotected abstract void addClause(Q topLevel,
Term term,
float boost)
throws IOException
IOExceptionprotected final void collectTerms(IndexReader reader, MultiTermQuery query, TermCollectingRewrite.TermCollector collector) throws IOException
IOException