Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Query DSL ›Запросы на уровне терминов

Запрос с подстановкой

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

Оператор подстановки — это заполнитель, который соответствует одному или нескольким символам. Например, оператор * соответствует нулю или более символам. Вы можете комбинировать операторы подстановки с другими символами, чтобы создать шаблон с подстановкой.

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

Следующий поиск возвращает документы, где поле user.id содержит термин, начинающийся с ki и заканчивающийся на y. Эти соответствующие термины могут включать в себя kiy, kity или kimchy.

resp = client.search(
    query={
        "wildcard": {
            "user.id": {
                "value": "ki*y",
                "boost": 1,
                "rewrite": "constant_score_blended"
            }
        }
    },
)
print(resp)
response = client.search(
  body: {
    query: {
      wildcard: {
        'user.id' => {
          value: 'ki*y',
          boost: 1,
          rewrite: 'constant_score_blended'
        }
      }
    }
  }
)
puts response
const response = await client.search({
  query: {
    wildcard: {
      "user.id": {
        value: "ki*y",
        boost: 1,
        rewrite: "constant_score_blended",
      },
    },
  },
});
console.log(response);
GET /_search
{
  "query": {
    "wildcard": {
      "user.id": {
        "value": "ki*y",
        "boost": 1.0,
        "rewrite": "constant_score_blended"
      }
    }
  }
}

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

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

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

boost

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

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

Значения повышения относительны к значению по умолчанию 1.0. Значение повышения от 0 до 1.0 уменьшает релевантность. Значение, большее чем 1.0, увеличивает релевантность.

case_insensitive [7.10.0] Добавлено в 7.10.0.
(Необязательно, булево) Разрешает нечувствительное к регистру соответствие шаблона значениям индексированного поля, если установлено в true. По умолчанию false, что означает, что чувствительность к регистру при соответствии зависит от сопоставления базового поля.
rewrite
(Необязательно, строка) Метод переписывания запроса. Для допустимых значений и дополнительной информации см. параметр rewrite.
value

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

Этот параметр поддерживает два оператора подстановки:

  • ?, который соответствует одному символу
  • *, который может соответствовать нулю или более символам, включая пустой

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

wildcard
(Обязательно, строка) Псевдоним параметра value. Если вы укажете как value, так и wildcard, в запросе используется последний из них в теле запроса.

Примечания

Запросы с подстановкой, использующие *, могут быть ресурсоемкими, особенно с ведущими подстановками. Для повышения производительности минимизируйте их использование и рассмотрите альтернативы, такие как токенизатор n-грамм. Хотя это позволяет более эффективно искать, это может увеличить размер индекса. Для лучшей производительности и точности комбинируйте запросы с подстановкой с другими типами запросов, такими как match или bool, чтобы сначала сузить результаты.

Разрешение ресурсоемких запросов

Запросы с подстановкой не будут выполнены, если search.allow_expensive_queries установлено в false.

© 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-wildcard-query.html

Spec-Zone.ru

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