Я пытаюсь создать механизм рекомендаций для библиотечной системы.
Это моя схема БД:
Моя отправная точка - LoanerCard.Затем поток должен выглядеть следующим образом: получить все копии -> получить материал -> получить все копии материала (включая оригинал) -> получить копию LoanerCard -> получить все одолженные копии -> вернуть имя материалакопии + агрегированное число, чтобы показать силу рекомендации.
Моя лучшая попытка на данный момент привела к следующему запросу:
MATCH (L:LoanerCard {Barcode:"10007"})-[:LOANED]->(myLoans)-[:COPY_OF]-
(masterMaterial),
(masterMaterial)<-[:COPY_OF]-(allCopies),
(allCopies)<-[:LOANED]-(coLoaners),
(coLoaners)-[r:LOANED]->(theirCopies),
(theirCopies)-[:COPY_OF]-(materials)
RETURN materials.Title as Recommended, count(*) as Strength ORDER BY Strength DESC
Моя проблема в том, что когда я пересекаю график не включает оригинальную копию и смежные карты Loaner, которые, по сути, охватывают только область, обведенную красным, и никогда не доходят до карт LoanerCard 10817 и 10558
.это включает их?