neo4j - 相互计数的用户建议

时间:2013-07-18 10:38:53

标签: neo4j cypher social-networking mutual-friendship

我在neo4j中创建了5个节点,如下所示。

Node 1 {userid:1000, username: A, someOtherProperties...}
Node 2 {userid:2000, username: B, someOtherProperties...}
Node 3 {userid:3000, username: c, someOtherProperties...} 
Node 4 {userid:4000, username: D, someOtherProperties...} 
Node 5 {userid:5000, username: E, someOtherProperties...} 

与节点2连接的节点1& 3,节点2与节点1,3,4连接

1 -> 2
1 -> 3
2 -> 1
2 -> 3
2 -> 4
3 -> 4

现在我想要节点1的用户建议,其中包含那些未连接的节点 相互重要的自我。我想要这样的结果。

node id  userid  username  mutual count
-------  ------  --------  -------------
4    4000    D         2             (which is node 2 & 3)
5    5000    E         0    

我曾尝试过密码查询,但我没有成功。

1 个答案:

答案 0 :(得分:0)

请尝试

START user=node:node_auto_index(name='A'), f=node(*) 
MATCH user-[r?:FRIEND*1..2]->(f) 
WITH DISTINCT r AS friendRelation,f 
RETURN count(friendRelation),f

这将为您提供深度为2(朋友的朋友)的每个其他节点的朋友关系数量