2015-09-28 35 views
1

我有一個網站我正在努力匹配基於共同興趣或技能的人。我可以通過Cyper很容易地連接它們以找到其他人,但我想要做的是按照它們具有的通用連接數量來排序。如果A人與B人有10個共同利益,我希望他們在C人以上只與人共享4個共同利益。如果我還可以統計共同利益的數量,則可以得到獎勵積分。謝謝!與最常見的連接節點

回答

2

嘗試計算相交興趣模式中關係的數量。例如:

MATCH (a:Person)-[r:INTERESTED_IN]->(:Thing)<-[:INTERESTED_IN]-(b:Person) 
    WHERE NOT a=b 
WITH a, b, count(r) AS commonInterestCount 
RETURN a.name, b.name, commonInterestCount ORDER BY commonInterestCount DESC 
+0

由於模式中的'a'和'b'沒有區別,因此每個匹配爲'a'的節點也將匹配爲'b'。這沒有錯,但有時候是不可取的。如果是這樣的話,添加一些關於特定節點的匹配('a:Person {pid:1}) - 或者做'WHERE ID(a)> ID(b)'來打破對稱。 – jjaderberg