2013-05-09 142 views
0

我需要在Cypher查詢的幫助下找到最連接好友的朋友節點。找到擁有最多共同朋友的朋友..並返回他/她的朋友不在您的列表中

在下面的例子中,給定B,我需要一個查詢來返回「沙拉」節點而不是「培根」節點。對於這種特殊情況,我選擇了節點C(與節點A相對),作爲最連接的朋友。這是因爲B & C分享了大多數朋友。然後,我拿起了不是B的朋友列表的C的朋友,以便推薦朋友節點(沙拉)。

enter image description here

鑑於B,我需要一個暗號查詢返回的Neo4j 「沙拉」 節點。 Per Stefan的建議我添加了Neo4j控制檯數據here。謝謝。

+1

問題是什麼? – Amy 2013-05-09 21:28:22

+0

嗨艾米,請參閱上面編輯的問題。讓我知道如果這不明確。 – Anshul 2013-05-10 01:48:38

回答

1

我假設你事先知道節點B和C的id。

start b=node(<id_of_b>), c=node(<id_of_c>) 
match c-[:LIKES]->stuff 
where not(b-[:LIKES]->stuff) 
return stuff 

這應該給你一個C喜歡不B的項目列表,也就是「沙拉」節點。

對於將來的問題,請考慮在http://console.neo4j.org上設置您的數據集,這會讓您的問題更加清晰。

+0

嗨Stefan,感謝您抽出時間回覆。其實我不知道節點C的ID。我想根據飲食習慣爲B建立一個建議,如果我知道他們吃了什麼。因此,挑戰的一部分將是找到C的編號。 – Anshul 2013-05-14 02:05:51

+0

您指的是C是b的「最相關的炒」。因此,您需要一個首先發現b然後運行上面的查詢的鏈式查詢。您可以使用'with'鏈接查詢。 – 2013-05-14 06:31:13

+1

謝謝!我想我明白了。這是我的最後一個問題。 http://console.neo4j.org/r/6q17nq看看你是否批准。 – Anshul 2013-05-14 13:07:26