Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Query DSL ›Полные текстовые запросы

Запрос match phrase prefix

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

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

Следующий запрос возвращает документы, содержащие фразы, начинающиеся с quick brown f в поле message.

Этот запрос будет соответствовать значению message quick brown fox или two quick brown ferrets, но не the fox is quick and brown.

resp = client.search(
    query={
        "match_phrase_prefix": {
            "message": {
                "query": "quick brown f"
            }
        }
    },
)
print(resp)
response = client.search(
  body: {
    query: {
      match_phrase_prefix: {
        message: {
          query: 'quick brown f'
        }
      }
    }
  }
)
puts response
const response = await client.search({
  query: {
    match_phrase_prefix: {
      message: {
        query: "quick brown f",
      },
    },
  },
});
console.log(response);
GET /_search
{
  "query": {
    "match_phrase_prefix": {
      "message": {
        "query": "quick brown f"
      }
    }
  }
}

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

<field>
(Обязательно, объект) Поле, которое вы хотите искать.

Параметры для <field>

query

(Обязательно, строка) Текст, который вы хотите найти в указанном поле <field>.

Запрос match_phrase_prefix анализирует любой предоставленный текст на токены перед выполнением поиска. Последний термин этого текста рассматривается как префикс, соответствующий любым словам, начинающимся с этого термина.

analyzer
(Необязательно, строка) Анализатор, используемый для преобразования текста в значении query в токены. По умолчанию используется анализатор индексации, сопоставленный для <field>. Если анализатор не сопоставлен, используется анализатор по умолчанию для индекса.
max_expansions
(Необязательно, целое число) Максимальное количество терминов, до которых будет расширяться последний предоставленный термин в значении query. По умолчанию 50.
slop
(Необязательно, целое число) Максимальное количество позиций, разрешенных между сопоставляемыми токенами. По умолчанию 0. Для транспонированных терминов используется скос 2.
zero_terms_query

(Необязательно, строка) Указывает, возвращаются ли какие-либо документы, если analyzer удаляет все токены, например, при использовании фильтра stop. Допустимые значения:

none (По умолчанию)
Если analyzer удаляет все токены, не возвращаются никакие документы.
all
Возвращает все документы, аналогично запросу match_all.

Примечания

Использование запроса match phrase prefix для автодополнения поиска

Несмотря на простоту настройки, использование запроса match_phrase_prefix для автодополнения поиска может иногда приводить к непонятным результатам.

Например, рассмотрим строку запроса quick brown f. Этот запрос работает, создавая фразовый запрос из quick и brown (т.е. термин quick должен существовать и должен следовать за термином brown). Затем он просматривает отсортированный словарь терминов, чтобы найти первые 50 терминов, начинающихся с f, и добавляет эти термины в фразовый запрос.

Проблема заключается в том, что первые 50 терминов могут не включать термин fox, поэтому фраза quick brown fox не будет найдена. Обычно это не проблема, так как пользователь будет продолжать вводить больше букв, пока не появится искомое слово.

Для лучших решений для поиска по мере ввода см. предложение завершения и тип поля search_as_you_type.

© 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-match-query-phrase-prefix.html

Spec-Zone.ru

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