У меня есть следующая задача: запросить SOLR и вернуть взвешенный список на основе нескольких условий.
Пример:
У меня есть документы со следующими полями, они в основном представляют фильмы:
имя, жанр, актеры, режиссер
Я хочу вернуть 20 документов, отсортированных по следующему условию
- Документ имеет 1 актера и одного и того же директора (5 баллов)
- В документе участвуют 2 или более актеров (3 балла)
- Документ разделяет директор (3 балла)
- Документ того же жанра с общим актером (2 балла)
- Документ того же жанра (1 балл)
Тогда возьмите эти 4 фильма:
Id: 1
Имя: Гарри Поттер и философский камень
Жанр: приключения
Режиссер: Крис Коламбус
Актеры: Дэниел Рэдклифф, Руперт Гринт, Эмма Уотсон
Id: 2
Имя: Моя неделя с Мэрилин
Жанр: драма
Режиссер: Саймон Кертис
Актеры: Мишель Уильямс, Эдди Редмэйн, Эмма Уотсон
Id: 3
Имя: Перси Джексон и олимпийцы: похититель молний
Жанр: приключения
Справочник: Крис Коламбус
Актеры: Логан Лерман, Брэндон Т. Джексон, Александра Даддарио
Id: 4
Имя: Гарри Поттер и Тайная комната
Жанр: приключения
Режиссер: Крис Коламбус
Актеры: Дэниел Рэдклифф, Руперт Гринт, Эмма Уотсон
Я хочу запросить SOLR следующим образом: верните мне список соответствующих фильмов на основе идентификатора фильма == 4
Возвращаемый результат должен быть:
- Id: 1, очков: 14 (соответствует всем 5 условиям)
- Id: 3, очков: 4 (соответствует условиям 3 и 5)
- Id: 2, очков: 0 (соответствует 0 условиям)
Есть ли возможность сделать это напрямую в SOLR?
Как всегда заранее спасибо :)