Я использую опцию нечеткого поиска в ElasticSearch. Это довольно круто.
Но я столкнулся с проблемой при поиске значений с пробелами. Например, скажем, у меня есть два значения:
"Pizza"
"Pineapple Pizza"
, и я ищу Пиццу по этому запросу:
client.search({
index: 'food_index',
body: {
query: {
fuzzy: {
name: {
value: "Pizza",
transpositions: true,
}
},
}
}
})
Возвращаются следующие значения:
"Pizza"
"Pineapple Pizza"
Какиеожидается. Но если я введу в запросе значение «Ананасовая пицца»:
client.search({
index: 'food_index',
body: {
query: {
fuzzy: {
name: {
value: "Pineapple Pizza",
transpositions: true,
}
},
}
}
})
Вернутся следующие значения:
""
Пусто
Почему это так? Это должно быть точное совпадение. Я обдумываю переключение всех имен, в которых есть пробелы, на подчеркивание. Таким образом, «Pineapple Pizza» будет «Pineapple_Pizza» (это решение работает для меня). Но я задаю этот вопрос, чтобы надеяться найти лучшую альтернативу. Что я тут не так делаю?