0

假设我已将自己本地的 Twitter 图拉到 Neo4J 中。我想找到更多关注我朋友的人,这应该是预期的。更具体地说,我想找到关注我关注的人的人,但我希望对结果进行排序,以便将关注我朋友数量最多的人排在第一位。在 Cypher 中可能吗?

4

1 回答 1

6

这是一个控制台示例:

http://console.neo4j.org/r/p36cgj

create (me {n:"a"}), (fo1 {n:"fo1"}), (fo2 {n:"fo2"}), (fo3 {n:"fo3"}), (fr1 {n:"fr1"}),
(fr2 {n:"fr2"}), (fr3 {n:"fr3"}),
fo1-[:follows]->me, fo2-[:follows]->me, fo3-[:follows]->me, me-[:follows]->fr1, 
me-[:follows]->fr2, me-[:follows]->fr3, fo1-[:follows]->fr1, fo2-[:follows]->fr2, 
fo1-[:follows]->fr2, fo1-[:follows]->fr3;


start me=node:node_auto_index(n="me") 
match me-[:follows]->friends<-[:follows]-follower-[:follows]->me 
return follower, count(friends) as creepinessFactor, length(me-[:follows]->()) as countIFollow 
order by creepinessFactor desc;

我很想知道结果,顺便说一句。:P

你也可以投个where赞:

where not(me-[:follows]->follower)

为了避免在你的圈子里结交朋友。

于 2013-02-04T14:35:25.707 回答