@Oleg-Ukraine

Как правильно замапить или написать запрос?

У меня есть продукты с названиями состоящими из 1-5 слов. Необходимо cделать поиск по названию продукта.

Пример. Есть продукты с названиями.

Коричневые тапочки
Зеленые тапочки
Зеленые невидимки
Зеленые танки

При вводе пользователя “тапо”
надо отдать

Коричневые тапочки
Зеленые тапочки

при вводе “зеле”

Зеленые тапочки
Зеленые невидимки
Зеленые танки

Все это на данный момент срабатывает при мапинге поля title: {type: text, boost: 5}
и запроса

{"query":{
  "bool":{
    "must":[{
      "prefix":{"title":{"value":"зел"}
      }
    }]
  }}
}


Проблемы начинаются, когда пользователь вводит “зеленые та”

хотелось бы в результате увидеть

Зеленые тапочки
Зеленые танки

но, к сожалению, результат возвращается пустым. Буду очень признателен если Вы что-то подскажите по мапингу или запросу для решения данной проблемы.
  • Вопрос задан
  • 319 просмотров
Решения вопроса 1
leahch
@leahch
3Д специалист. Долго, Дорого, Дерьмово.
Разбейте термы на ngram https://www.elastic.co/guide/en/elasticsearch/guid...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Oleg-Ukraine Автор вопроса
Еще момент, текущий запрос решается довольно простым оператором match_phrase_prefix
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы