1
我有一個neo4j數據庫,包含用戶,曲目和DJ,用戶與DJ有相似之處,DJ可以播放曲目。現在我想找出所有由具有與用戶相似的DJ,東西打得像在neo4j中找到明確的關係
MATCH (u:User {userId:'6'})-[s:SIMILARITY]->(dj:Dj)-[p:PLAYED]->(t:Track)
return COUNT(t)*s.similarity AS count,t order by count;
問題的軌道是DJ的可以多次,我已經由多個PLAYED代表播放音軌DJ和曲目之間的關係。所以如果一個dj多次播放曲目,它會通過這個查詢獲得更多的權重,而我只想讓這些多個關係計數一次。
的解決方案可能是一些與DISTINCT,但我不知道在哪裏把它(計數(不同T)沒有得到期望的結果)。另一種方法是將數據庫重構爲只有一個PLAYED關係,並將PLAYED的timestamp屬性存儲爲一個數組。
在這種情況下,我想執行一個查詢(其他地方)問:「找到所有跟蹤該時間戳在此之後跟着DJ播放」,這也將解決這個問題,但我不知道怎麼辦。
在此先感謝
這麼簡單,謝謝! – user3136936 2015-03-13 09:14:44