Составные запросы в Elasticsearch: запрос максимальной разобщенности

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

Если возвращенный документ соответствует нескольким предложениям запроса, запрос 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

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

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

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

  • Возьмет оценку релевантности из предложения сопоставления с наивысшей оценкой.
  • Умножит оценку из любых других предложений сопоставления на значение tie_breaker.
  • Добавит наивысший балл к умноженным баллам.

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


Читайте также:

Комментарии

Популярные сообщения из этого блога

Язык поисковых запросов в Graylog

Хэш-таблица: разрешение коллизий

Нормальные формы, пример нормализации в базе данных