Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Query DSL: Allow to control how all multi term queries are rewritten #1186

Closed
kimchy opened this issue Jul 29, 2011 · 0 comments
Closed

Query DSL: Allow to control how all multi term queries are rewritten #1186

kimchy opened this issue Jul 29, 2011 · 0 comments

Comments

@kimchy
Copy link
Member

kimchy commented Jul 29, 2011

Allow to control how multi term queries rewrite, all relevant queries (wildcard, prefix), and query parsers (query_string and field, when using wildcard characters) support a new parameter called rewrite, with the following values:

  • When not set, or set to constant_score_default, defaults to automatically choosing either constant_score_boolean or constant_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 use constant_score_default. This rewrite method will hit too many clauses failure if it exceeds the boolean query limit (defaults to 1024).
  • constant_score_boolean: Similar to scoring_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 to 1024).
  • 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. The N 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. The N controls the size of the top scoring terms to use.
@kimchy kimchy closed this as completed in 73adbdd Jul 29, 2011
mute pushed a commit to mute/elasticsearch that referenced this issue Jul 29, 2015
williamrandolph pushed a commit to williamrandolph/elasticsearch that referenced this issue Jun 4, 2020
We already had parsing code for this dating back to the 2.x era. Lucky us.

fixes elastic#1186
jev001 pushed a commit to jev001/elasticsearch that referenced this issue Dec 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant