public abstract class ScoringRewrite<B> extends MultiTermQuery.RewriteMethod
| Modifier and Type | Field and Description |
|---|---|
static MultiTermQuery.RewriteMethod |
CONSTANT_SCORE_BOOLEAN_REWRITE
Like
SCORING_BOOLEAN_REWRITE except
scores are not computed. |
static ScoringRewrite<BooleanQuery.Builder> |
SCORING_BOOLEAN_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 void |
addClause(B topLevel,
Term term,
int docCount,
float boost)
Add a MultiTermQuery term to the top-level query builder.
|
protected abstract void |
addClause(B topLevel,
Term term,
int docCount,
float boost,
TermContext states) |
protected abstract Query |
build(B builder)
Finalize the creation of the query from the builder.
|
protected abstract void |
checkMaxClauseCount(int count)
This method is called after every new term to check if the number of max clauses
(e.g.
|
protected abstract B |
getTopLevelBuilder()
Return a suitable builder for the top-level Query for holding all expanded terms.
|
Query |
rewrite(IndexReader reader,
MultiTermQuery query) |
getTermsEnumpublic static final ScoringRewrite<BooleanQuery.Builder> SCORING_BOOLEAN_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_REWRITE 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_REWRITE
SCORING_BOOLEAN_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().
protected abstract void checkMaxClauseCount(int count)
throws IOException
RuntimeException.IOExceptionpublic final Query rewrite(IndexReader reader, MultiTermQuery query) throws IOException
rewrite in class MultiTermQuery.RewriteMethodIOExceptionprotected abstract B getTopLevelBuilder()
throws IOException
IOExceptionprotected abstract Query build(B builder)
protected final void addClause(B topLevel,
Term term,
int docCount,
float boost)
throws IOException
IOExceptionprotected abstract void addClause(B topLevel,
Term term,
int docCount,
float boost,
TermContext states)
throws IOException
IOExceptionCopyright © 2000-2017 Apache Software Foundation. All Rights Reserved.