Похоже, это проблема поиска, а не рекомендации. Вы в основном сортируете и фильтруете результаты поиска по тегам. Поэтому я думаю, что Lucene - это инструмент для развертывания, а не Mahout. (Хотя использование классификаторов Mahout для изучения тегов совершенно правильно.)
Если вы действительно хотите представить это как рекомендательную проблему, я могу сказать, что ваши предметы - это теги. Каждый раз, когда вы взаимодействуете с тегом, например, просматриваете страницу с тегами X, Y и Z, это указывает на то, что вы немного больше заинтересованы в «элементах» X, Y и Z. И тогда проблема с рекомендациями заключается в том, чтобы предложить новые теги интерес.
Вы можете попробовать использовать простое количество взаимодействий с тегом в качестве числового «рейтинга», хотя я думаю, что это не даст хороших результатов в контексте рекомендаций. Лучше использовать журнал учета, но все равно чувствует себя неправильно. Вы можете игнорировать счетчик взаимодействий и просто использовать тот факт, что пользователь и тег когда-либо взаимодействовали, или нет - «логические предпочтения».
Модель алгоритма рекомендации, которая лучше всего соответствует этому входному сигналу, о котором я знаю, это модель чередующихся наименьших квадратов, которую вы видите в ParallelALSFactorizationJob. Я не знаю, пригодно ли это для вас, но этот алгоритм я бы изучил, если бы у вас было время и желание. Его вклад больше похож на «силу взаимодействия», а не на рейтинг, и он относится к нему именно так, и вот что у вас здесь.