pub enum Rewrite {
ConstantScore,
ConstantScoreBoolean,
ScoringBoolean,
TopTermsBlendedFrequencies(u64),
TopTermsBoost(u64),
TopTerms(u64),
}Expand description
Method used to rewrite the query.
This parameter is for expert users only. Changing the value of this parameter can impact search performance and relevance.
The rewrite parameter determines:
- How Lucene calculates the relevance scores for each matching document
- Whether Lucene changes the original query to a
boolquery or bit set - If changed to a
boolquery, whichtermquery clauses are included
Performance considerations for the rewrite parameter
For most uses, we recommend using the constant_score,
constant_score_boolean, or top_terms_boost_N rewrite methods.
Other methods calculate relevance scores. These score calculations are often expensive and do not improve query results.
Variants
ConstantScore
Uses the constant_score_boolean method for fewer matching terms. Otherwise, this method finds all matching terms in sequence and returns matching documents using a bit set.
ConstantScoreBoolean
Assigns each document a relevance score equal to the boost parameter.
This method changes the original query to a
bool query. This bool query contains a
should clause and term query
for each matching term.
This method can cause the final bool query to exceed the clause limit
in the
indices.query.bool.max_clause_count
setting. If the query exceeds this limit, Elasticsearch returns an error.
ScoringBoolean
Calculates a relevance score for each matching document.
This method changes the original query to a
bool query. This bool query contains a
should clause and term query
for each matching term.
This method can cause the final bool query to exceed the clause limit
in the
indices.query.bool.max_clause_count
setting. If the query exceeds this limit, Elasticsearch returns an error.
TopTermsBlendedFrequencies(u64)
Calculates a relevance score for each matching document as if all terms had the same frequency. This frequency is the maximum frequency of all matching terms.
This method changes the original query to a
bool query. This bool query contains a
should clause and term query
for each matching term.
The final bool query only includes term queries for the top N
scoring terms.
You can use this method to avoid exceeding the clause limit in the
indices.query.bool.max_clause_count
setting.
TopTermsBoost(u64)
Assigns each matching document a relevance score equal to the boost parameter.
This method changes the original query to a
bool query. This bool query contains a
should clause and term query
for each matching term.
The final bool query only includes term queries for the top N
terms.
You can use this method to avoid exceeding the clause limit in the
indices.query.bool.max_clause_count
setting.
TopTerms(u64)
Calculates a relevance score for each matching document.
This method changes the original query to a
bool query. This bool query contains a
should clause and term query
for each matching term.
The final bool query only includes term queries for the top N
scoring terms.
You can use this method to avoid exceeding the clause limit in the
indices.query.bool.max_clause_count
setting.