Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Query DSL

параметр rewrite

Этот параметр предназначен только для опытных пользователей. Изменение значения этого параметра может повлиять на производительность и релевантность поиска.

Elasticsearch использует Apache Lucene для индексации и поиска. В исходном виде Lucene не может выполнить следующие запросы:

  • fuzzy
  • prefix
  • query_string
  • regexp
  • wildcard

Для их выполнения Lucene преобразует эти запросы в более простой вид, например, в bool запрос или в набор битов.

Параметр rewrite определяет:

  • Как Lucene вычисляет релевантность каждого совпадающего документа
  • Преобразует ли Lucene исходный запрос в запрос bool или в набор битов
  • Если запрос преобразован в запрос bool, какие term условия запроса включаются

Допустимые значения

constant_score_blended (По умолчанию)

Присваивает каждому документу релевантность, равную значению параметра boost.

Этот метод поддерживает реализацию запроса bool для самых дорогостоящих терминов, предварительно обрабатывая менее дорогостоящие термины в набор битовых фильтров.

Этот метод может привести к тому, что сгенерированный запрос bool превысит ограничение на количество условий в настройке indices.query.bool.max_clause_count. Если запрос превысит это ограничение, Elasticsearch вернёт ошибку.

constant_score
Использует метод constant_score_boolean для меньшего количества соответствующих терминов. В противном случае этот метод последовательно находит все соответствующие термины и возвращает соответствующие документы, используя набор битов.
constant_score_boolean

Присваивает каждому документу релевантность, равную значению параметра boost.

Этот метод преобразует исходный запрос в bool запрос. Этот запрос bool содержит условие should и term запрос для каждого соответствующего термина.

Этот метод может привести к тому, что итоговый запрос bool превысит ограничение на количество условий в настройке indices.query.bool.max_clause_count. Если запрос превысит это ограничение, Elasticsearch вернёт ошибку.

scoring_boolean

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

Этот метод преобразует исходный запрос в bool запрос. Этот запрос bool содержит условие should и term запрос для каждого соответствующего термина.

Этот метод может привести к тому, что итоговый запрос bool превысит ограничение на количество условий в настройке indices.query.bool.max_clause_count. Если запрос превысит это ограничение, Elasticsearch вернёт ошибку.

top_terms_blended_freqs_N

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

Этот метод преобразует исходный запрос в bool запрос. Этот запрос bool содержит условие should и term запрос для каждого соответствующего термина.

Итоговый запрос bool включает только term запросы для самых высокорейтинговых терминов по количеству N.

Этот метод можно использовать для предотвращения превышения ограничения на количество условий в настройке indices.query.bool.max_clause_count.

top_terms_boost_N

Присваивает каждому соответствующему документу релевантность, равную значению параметра boost.

Этот метод преобразует исходный запрос в bool запрос. Этот запрос bool содержит условие should и term запрос для каждого соответствующего термина.

Итоговый запрос bool включает только term запросы для самых высокорейтинговых терминов по количеству N.

Этот метод можно использовать для предотвращения превышения ограничения на количество условий в настройке indices.query.bool.max_clause_count.

top_terms_N

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

Этот метод преобразует исходный запрос в bool запрос. Этот запрос bool содержит условие should и term запрос для каждого соответствующего термина.

Итоговый запрос bool включает только term запросы для самых высокорейтинговых терминов по количеству N.

Этот метод можно использовать для предотвращения превышения ограничения на количество условий в настройке indices.query.bool.max_clause_count.

Соображения по производительности для параметра rewrite

Для большинства случаев рекомендуется использовать методы constant_score_blended, constant_score, constant_score_boolean или top_terms_boost_N переписывания.

Другие методы вычисляют оценки релевантности. Эти вычисления часто являются дорогостоящими и не улучшают результаты запроса.

© 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/8.17/query-dsl-multi-term-rewrite.html

Spec-Zone.ru

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