Перевод запроса конечного пользователя Solr

Мне интересно, есть ли способ преобразовать запрос конечного пользователя в более сложный запрос solr на основе некоторых правил.

Например, если пользователь вводит 32-дюймовый телевизор, я хочу использовать синтаксический анализатор запросов dismax, чтобы позволить solr позаботиться об этой строке пользовательского запроса, как показано ниже:

http://localhost:8983/solr/select/?q=32" television&defType=dismax

Однако, если пользователь вводит «телевизоры со скидкой», я хочу регулярно искать телевизоры с токенами, и флаг распродажи соответствует действительности, как показано ниже:

http://localhost:8983/solr/select/?q=name:televisions AND isOnSale:true

Это возможно? Или эта логика должна требовать формы предварительного поиска, где пользователь может четко указать в флажке, что ему нужны только товары со скидкой.

Спасибо.


person user321532    schedule 18.10.2012    source источник
comment
Вы можете обработать это на стороне клиента, чтобы передать различные обработчики запросов, которые будут использоваться для создания запросов.   -  person Jayendra    schedule 19.10.2012


Ответы (3)


Преобразование пользовательского запроса вполне возможно. Вы можете сделать это двумя способами

  1. реализовать фильтр сервлетов, который прослушивает пользовательский запрос, преобразует его перед отправкой обработчику запросов solr.

  2. Посмотрите на плагин синтаксического анализатора запросов в SOLR и реализуйте его на основе существующего, например стандартного синтаксического анализатора запросов, и измените его, чтобы применить правила преобразования.

person Umar    schedule 19.10.2012

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

Samsung 32 в обзорах --подробнее

LG 32 в предложениях -- найдите больше подобных

На вашей странице предложений могут быть доступны дополнительные параметры, например фильтрация товаров со скидкой.

Вы можете использовать глобальное поле повышения в документах. Например, товар со скидкой имеет оценку 1.0, а товары, которых нет в наличии, — 0.33. В обзоре новых товаров 1.0, у старых товаров меньше.

person Jesvin Jose    schedule 19.10.2012

Может быть, вы можете настроить поиск, чтобы, когда кто-то ищет что-либо, isOnSale был вторичным параметром сортировки. Таким образом, по умолчанию сортируйте по баллам, затем сортируйте по isonsale или просто сортируйте по isonsale. Таким образом, вы по-прежнему будете получать все «телевизионные» объявления в результатах, только те, что продаются, находятся вверху.

person d whelan    schedule 20.10.2012