Я сталкиваюсь с проблемой вида результаты Lucene на основе пользовательского журнала щелчка. Я хотел бы это, результаты, к которым более получают доступ, на первом месте. Кто-либо знает, как настроить или реализовать такое свойство в Lucene или Solr?
Большое спасибо.
Вы можете объявить сортируемое целочисленное поле (назовем его clickNum) в своей схеме, установив его по умолчанию равным нулю для каждого проиндексированного документа. Когда пользователь открывает документ, ваше приложение запускает обновление поля clickNum, устанавливая clickNum = clickNum + 1.
На стороне запроса вы можете установить сортировку по нескольким типам на основе вашего основного параметра сортировки (если есть) и clickNum:
sort =
Вы можете избежать обновления документа, сохранив журнал кликов во внешней базе данных и переупорядочив результаты с уточнением после запроса, но ИМХО, это не так хороший вариант.
Использование Dismax может быть хорошим вариантом. Параметр bf (Boost Functions) Dismax может быть установлен для повышения документов с высоким количеством кликов.
Если вы не хотите использовать Dismax, вы также можете использовать функцию query в параметре bf (Boost Functions).