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

Запрос match boolean prefix

Запрос match_bool_prefix анализирует свой ввод и строит запрос bool из полученных терминов. Каждый термин, кроме последнего, используется в запросе term. Последний термин используется в запросе prefix. Запрос match_bool_prefix, например:

GET /_search
{
  "query": {
    "match_bool_prefix" : {
      "message" : "quick brown f"
    }
  }
}

где анализ генерирует термины quick, brown и f, похож на следующий запрос bool

GET /_search
{
  "query": {
    "bool" : {
      "should": [
        { "term": { "message": "quick" }},
        { "term": { "message": "brown" }},
        { "prefix": { "message": "f"}}
      ]
    }
  }
}

Важное различие между запросом match_bool_prefix и match_phrase_prefix заключается в том, что запрос match_bool_prefix ищет свои термины как фразу, а запрос match_bool_prefix может находить свои термины в любом порядке. Пример запроса match_bool_prefix выше может соответствовать полю, содержащему quick brown fox, но он также может соответствовать brown fox quick. Он также может соответствовать полю, содержащему термин quick, термин brown и термин, начинающийся с f, в любом порядке.

Параметры

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

GET /_search
{
  "query": {
    "match_bool_prefix": {
      "message": {
        "query": "quick brown f",
        "analyzer": "keyword"
      }
    }
  }
}

Запросы match_bool_prefix поддерживают параметры minimum_should_match и operator, как описано для запроса match, применяя настройки к построенному запросу bool. Количество предложений в построенном запросе bool в большинстве случаев будет равно количеству терминов, полученных в результате анализа текста запроса.

Параметры fuzziness, prefix_length, max_expansions, fuzzy_transpositions и fuzzy_rewrite могут быть применены к подзапросам term, построенным для всех терминов, кроме последнего. Они не оказывают никакого влияния на запрос префикса, построенный для последнего термина.

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

Spec-Zone.ru

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