WARNING: Version 1.4 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Multi Term Query Rewrite
editMulti Term Query Rewrite
editMulti term queries, like
wildcard and
prefix are called
multi term queries and end up going through a process of rewrite. This
also happens on the
query_string.
All of those queries allow to control how they will get rewritten using
the rewrite
parameter:
-
When not set, or set to
constant_score_auto
, defaults to automatically choosing eitherconstant_score_boolean
orconstant_score_filter
based on query characteristics. -
scoring_boolean
: A rewrite method that first translates each term into a should clause in a boolean query, 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 useconstant_score_auto
. This rewrite method will hit too many clauses failure if it exceeds the boolean query limit (defaults to1024
). -
constant_score_boolean
: Similar toscoring_boolean
except scores are not computed. Instead, each matching document receives a constant score equal to the query’s boost. This rewrite method will hit too many clauses failure if it exceeds the boolean query limit (defaults to1024
). -
constant_score_filter
: A rewrite method that first creates a private Filter by visiting each term in sequence and marking all docs for that term. Matching documents are assigned a constant score equal to the query’s boost. -
top_terms_N
: A rewrite method that first translates each term into should clause in boolean query, and keeps the scores as computed by the query. This rewrite method only uses the top scoring terms so it will not overflow boolean max clause count. TheN
controls the size of the top scoring terms to use. -
top_terms_boost_N
: A rewrite method that first translates each term into should clause in boolean query, but the scores are only computed as the boost. This rewrite method only uses the top scoring terms so it will not overflow the boolean max clause count. TheN
controls the size of the top scoring terms to use.