Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Query DSL ›Объединенные запросы

Запрос disjunction max

Возвращает документы, соответствующие одному или нескольким вложенным запросам, называемым условиями запроса или клаузами.

Если возвращаемый документ соответствует нескольким условиям запроса, запрос dis_max присваивает документу наибольший рейтинг релевантности из любого соответствующего условия, плюс приращение для разрыва ничьей для любых дополнительных соответствующих подзапросов.

Можно использовать dis_max для поиска термина в полях, сопоставленных с разными коэффициентами усиления.

Пример запроса

GET /_search
{
  "query": {
    "dis_max": {
      "queries": [
        { "term": { "title": "Quick pets" } },
        { "term": { "body": "Quick pets" } }
      ],
      "tie_breaker": 0.7
    }
  }
}

Параметры верхнего уровня для dis_max

queries
(Обязательный, массив объектов запросов) Содержит одно или несколько условий запроса. Возвращаемые документы должны соответствовать одному или нескольким этим запросам. Если документ соответствует нескольким запросам, Elasticsearch использует наивысший рейтинг релевантности.
tie_breaker

(Необязательный, число с плавающей точкой) Число с плавающей точкой между 0 и 1.0, используемое для повышения рейтингов релевантности документов, соответствующих нескольким условиям запроса. По умолчанию 0.0.

Можно использовать значение tie_breaker, чтобы присваивать более высокие рейтинги релевантности документам, содержащим один и тот же термин в нескольких полях, чем документам, содержащим этот термин только в лучшем из этих нескольких полей, без путаницы с лучшим случаем двух различных терминов в нескольких полях.

Если документ соответствует нескольким условиям, запрос dis_max рассчитывает рейтинг релевантности для документа следующим образом:

  1. Взять рейтинг релевантности от соответствующего условия с наивысшим рейтингом.
  2. Умножить рейтинг от любого другого соответствующего условия на значение tie_breaker.
  3. Сложить наивысший рейтинг с умноженными рейтингами.

Если значение tie_breaker больше, чем 0.0, все соответствующие условия учитываются, но условие с наивысшим рейтингом учитывается больше всего.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/query-dsl-dis-max-query.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API