Представление результатов SOLR, объединенных с индивидуальными данными пользователя - PullRequest
2 голосов
/ 08 августа 2010

Я ищу стратегию для представления индивидуального рейтинга пользователя в документе solr.то есть.Пользователи могут ставить оценку 1-5 на документ, и я хочу представить их обратно во время поиска.

Я могу думать о двух общих подходах.

  1. Сохранять оценки в моей RDBMS и запрашивать их после получения результатов solr и объединения данных в бизнес-логике.

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

Принимая во внимание большую базу пользователей, я боюсь, что подход 2 может выйти из-под контроля.Насколько "широко" вы можете пойти с документом Solr?Можете ли вы поместить десятки тысяч атрибутов в документ?Будет ли влияние на производительность по-прежнему оставлять подход 2 лучше, чем второй удар по sql db (подход 1)?

Есть ли другие подходы, о которых я не думаю?

Ответы [ 3 ]

0 голосов
/ 09 августа 2010

Я использовал подход № 1. Поскольку количество оценок у каждого пользователя низкое (вероятно, менее 1000), я просто кеширую все его оценки при входе в систему и сохраняю в памяти. Затем, показывая результаты SOLR, очень быстро просто применить рейтинги, где это необходимо.

Это избавляет вас от необходимости обращаться к базе данных для каждого результата и не слишком перегружает сервер. Кроме того, когда пользователь обновляет свои рейтинги, вы просто обновляете базу данных и аннулируете кэш. Вам не нужно вызывать UPDATE для документа SOLR.

0 голосов
/ 11 августа 2010

Я бы пошел с номером 2 и только периодически обновлял рейтинг.Таким образом, вы можете смешать рейтинг с оценкой релевантности, рассчитанной Solr.

Я думаю, это зависит от того, похожи ли вы на Digg / Reddit, где голосование «вверх» / «вниз» кардинально влияет на то, что показано, или это просто еще один фактор оценки, например, насколько новый документ.Если это просто еще один фактор, обновляйте документ один раз в день, неделю или раз в месяц в спокойное время ....

0 голосов
/ 09 августа 2010

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

...