123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- [[query-dsl-dis-max-query]]
- === Disjunction max query
- ++++
- <titleabbrev>Disjunction max</titleabbrev>
- ++++
- Returns documents matching one or more wrapped queries, called query clauses or
- clauses.
- If a returned document matches multiple query clauses, the `dis_max` query
- assigns the document the highest relevance score from any matching clause, plus
- a tie breaking increment for any additional matching subqueries.
- [[query-dsl-dis-max-query-ex-request]]
- ==== Example request
- [source,console]
- ----
- GET /_search
- {
- "query": {
- "dis_max": {
- "queries": [
- { "term": { "title": "Quick pets" } },
- { "term": { "body": "Quick pets" } }
- ],
- "tie_breaker": 0.7
- }
- }
- }
- ----
- [[query-dsl-dis-max-query-top-level-params]]
- ==== Top-level parameters for `dis_max`
- `queries`::
- (Required, array of query objects) Contains one or more query clauses. Returned
- documents **must match one or more** of these queries. If a document matches
- multiple queries, {es} uses the highest <<query-filter-context, relevance
- score>>.
- `tie_breaker`::
- +
- --
- (Optional, float) Floating point number between `0` and `1.0` used to increase
- the <<relevance-scores,relevance scores>> of documents matching multiple
- query clauses. Defaults to `0.0`.
- You can use the `tie_breaker` value to assign higher relevance scores to
- documents that contain the same term in multiple fields than documents that
- contain this term in only the best of those multiple fields, without confusing
- this with the better case of two different terms in the multiple fields.
- If a document matches multiple clauses, the `dis_max` query calculates the
- relevance score for the document as follows:
- . Take the relevance score from a matching clause with the highest score.
- . Multiply the score from any other matching clauses by the `tie_breaker` value.
- . Add the highest score to the multiplied scores.
- If the `tie_breaker` value is greater than `0.0`, all matching clauses count,
- but the clause with the highest score counts most.
- --
|