Нет необходимости посылать разные термины поиска ie chair
, chiar
, чтобы получать предложения, это неэффективно и эффективно, и вы не знаете всех комбинаций, которые пользователь может опечатать.
Вместо этого используйте параметр нечеткости или нечеткости в самом запросе на совпадение , который можно использовать в запросе bool.
Позвольте мне показать Вы, например, используете запрос на совпадение с параметром нечеткости.
index def
{
"mappings": {
"properties": {
"product": {
"type": "text"
}
}
}
}
Пример индекса do c
{
"product" : "chair"
}
Поисковый запрос с неверным термином chiar
{
"query": {
"match" : {
"product" : {
"query" : "chiar",
"fuzziness" : "4" --> control it according to your application
}
}
}
}
Результат поиска
"hits": [
{
"_index": "so_fuzzy",
"_type": "_doc",
"_id": "1",
"_score": 0.23014566,
"_source": {
"product": "chair"
}
}