2017-04-07 133 views
0

的我試圖讓節點的集合在我的Neo4j項目暗號的Neo4j - 收集一組節點

我的數據庫嘗試通過評價,描述了用戶和電影之間的連接

,所以我將用戶鏈接到電影與鏈接「評爲」具有等級值(1-5)

除了我鏈接的用戶使用自己與「相似性」鏈接

現在我已經有他們

之間喜歡的用戶組

the groups of users

我想查看每個組相似性的用戶:電影組喜歡,在該示例的電影(喜歡=評級> = 4)

example

我的結果是:爆發,與狼共舞,披露

+0

你如何獲得結果? –

+0

您是否使用一些社區算法來嘗試並定義您的類似人羣? –

+0

我不知道如何構建返回給我的電影組查詢(針對每個相似用戶組) –

回答

0

既然您已經創建了用戶之間的直接關係SIMILAR,您必須運行社區檢測算法,以便它定義不同的用戶組。您可以使用apoc.algo函數對neo4j使用apoc plugin來運行它。

CALL apoc.algo.community(25,['User'],'community','SIMILAR','BOTH',1,10000) 

現在您已經定義了與社區檢測算法您的用戶羣,你可以簡單地詢問有什麼不同的用戶羣體喜歡

//You can also set additional filters when matching movies groups liked 
MATCH (user:User)-[rel:LIKED]->(m:Movie) where rel.rating > 3.5 
RETURN distinct(user.community) as group,collect(m.title) as movies 

知道這是如何實現這是一個非常簡單的版本。我建議你退房this graphgist,也許this video

希望這會有幫助

+0

感謝您的回答 但我不知道如何安裝插件 neo4j在Windows機器上運行,所有的教程是爲Linux機器 –

+0

下載neo4j的zip版本,安裝指南在這裏... https://neo4j.com/docs/operations-manual/current/installation/windows/ ...那麼只需將apoc.jar文件複製到neo4j/plugins目錄中即可 –