Solr / Lucene рейтинг кликов пользователей - PullRequest
1 голос
/ 31 мая 2010

Я столкнулся с проблемой сортировки результатов Lucene на основе журнала кликов пользователей. Я хотел бы, чтобы более доступные результаты были на первом месте. Кто-нибудь знает, как настроить или реализовать такое свойство в Lucene или Solr?

Большое спасибо.

Ответы [ 2 ]

2 голосов
/ 31 мая 2010

Вы можете объявить сортируемое целочисленное поле (назовем его clickNum) в вашей схеме, установив его в ноль по умолчанию для каждого проиндексированного документа. Когда пользователь открывает документ, ваше приложение запускает обновление поля clickNum, устанавливая clickNum = clickNum + 1.

На стороне запроса вы можете установить многократную сортировку на основе вашего основного параметра сортировки (если есть) и clickNum: sort=<field name>+<direction>[,clickNum+desc]

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

0 голосов
/ 01 июня 2010

Использование Dismax может быть хорошим вариантом. Параметр bf (Boost Functions) Dismax может быть установлен для увеличения документов с большим количеством кликов.

Если вы не хотите использовать Dismax, вы также можете использовать запрос функции в параметре bf (Boost Functions).

...