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

Рейтинг: 2Ответов: 0Опубликовано: 01.05.2023

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

Приведу несколько примеров:

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

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

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

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

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


UPDATE: добавлю еще что сайт имеет много языков, и исправление ошибок в поисковом запросе рассматривается как отдельная задача, сейчас думаем только над тем как преобразовать запрос в настройки фильтра

Ответы

Ответов пока нет.