Задать вопрос

Как сделать поиск который понимает суть запроса?

На сайте есть много категорий, например автомобили, запчасти, мобильные телефоны, недвижимость.
Задача сейчас стоит такая: нужно сделать поиск который будет понимать запрос и будет настраивать фильтры для данного запроса. То есть поиск не должен искать ключевые слова в заголовке и описание товара, а должен настраивать фильтры чтоб найти нужный товар.

Приведу несколько примеров:
  • красный айфон в Москве - система должна понимать что айфон относиться к категорий мобильных телефонов, производитель Apple, цвет красный тоже должен выбираться в отдельном фильтре, а в Москве относиться к фильтру местоположения, соотвественно выбираем страну Россия - Московская область
  • bmw e39 в Японий - выбирается категория автомобили, производитель Bmw, модель 5 серия, год производства 1996-2003, местонахождение страна Япония


таких примеров можно привести еще очень много, но думаю суть задачи ясна
характеристики всех товаров есть в базе данных

сейчас нужно сделать подсказки для поиска, то есть стоит задача преобразовать поисковой запрос в несколько вариантов поиска, один из которых выберет пользователь

но вопрос в том как это технически реализовать? в проекте уже используется elasticsearch, думаю тоже в нем создать индекс где будут все характеристики товаров, места, категорий и туда-же еще добавить какие-то кастомные запросы которые будут создавать администраторы

на сколько ли правильный такой подход? может у кого есть идей или опыт в реализации такой задачи
буду благодарен за любые полезные материалы или советы!

UPDATE: добавлю еще что сайт имеет много языков, и исправление ошибок в поисковом запросе рассматривается как отдельная задача, сейчас думаем только над тем как преобразовать запрос в настройки фильтра
  • Вопрос задан
  • 1136 просмотров
Подписаться 16 4 комментария
Подписчики вопроса 16 К ответам на вопрос (6)