Я не знаю, как обойти осторожный подход с использованием подстановочного запроса, поэтому вот как это будет выглядеть, если у вас просто возникли проблемы с синтаксисом:
GET /_search
{
"query": {
"wildcard": {
"title": {
"value": "*elved*",
"boost": 1.0,
"rewrite": "constant_score"
}
}
}
}
Я только что проверил этот тип запроса в своем собственном поисковом индексе и произвел поиск *oam*
правильно подобранного «вспенивания» в названиях продуктов.
А что касается нечувствительности к регистру , это должно быть обработано "из коробки", если вы используете один из встроенных анализаторов (например, Standard или English ).Но если вы используете собственный анализатор, то вам просто нужно обязательно включить фильтр lowercase
вместе с любыми другими фильтрами, через которые вы хотите выполнить условия.
PUT index_name
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase"
]
}
}
}
}
}
Есливы не указываете анализатор в вашем отображении поля, тогда я думаю, что он использует standard
по умолчанию, что включает в себя фильтрацию строчных букв.