Запрос с подстановкой
Возвращает документы, содержащие термины, соответствующие шаблону с подстановкой.
Оператор подстановки — это заполнитель, который соответствует одному или нескольким символам. Например, оператор * соответствует нулю или более символам. Вы можете комбинировать операторы подстановки с другими символами, чтобы создать шаблон с подстановкой.
Пример запроса
Следующий поиск возвращает документы, где поле 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
|
|