На сайте есть много категорий, например автомобили, запчасти, мобильные телефоны, недвижимость.
Задача сейчас стоит такая: нужно сделать поиск который будет понимать запрос и будет настраивать фильтры для данного запроса. То есть поиск не должен искать ключевые слова в заголовке и описание товара, а должен настраивать фильтры чтоб найти нужный товар.
Приведу несколько примеров:
- красный айфон в Москве - система должна понимать что айфон относиться к категорий мобильных телефонов, производитель Apple, цвет красный тоже должен выбираться в отдельном фильтре, а в Москве относиться к фильтру местоположения, соотвественно выбираем страну Россия - Московская область
- bmw e39 в Японий - выбирается категория автомобили, производитель Bmw, модель 5 серия, год производства 1996-2003, местонахождение страна Япония
таких примеров можно привести еще очень много, но думаю суть задачи ясна
характеристики всех товаров есть в базе данных
сейчас нужно сделать подсказки для поиска, то есть стоит задача преобразовать поисковой запрос в несколько вариантов поиска, один из которых выберет пользователь
но вопрос в том как это технически реализовать? в проекте уже используется elasticsearch, думаю тоже в нем создать индекс где будут все характеристики товаров, места, категорий и туда-же еще добавить какие-то кастомные запросы которые будут создавать администраторы
на сколько ли правильный такой подход? может у кого есть идей или опыт в реализации такой задачи
буду благодарен за любые полезные материалы или советы!
UPDATE: добавлю еще что сайт имеет много языков, и исправление ошибок в поисковом запросе рассматривается как отдельная задача, сейчас думаем только над тем как преобразовать запрос в настройки фильтра