Cypher: Is it possible to find creepy people following my friends?

↘锁芯ラ 提交于 2019-12-12 05:14:51

问题


Let's say I've pulled down the Twitter graph local to myself into Neo4J. I want to find people who follow my friends in number larger that should be expected. More specifically, I want to find people who follow the people I follow, but I want the results to be sorted so that the person following the highest number of my friends is sorted first. Possible in Cypher?


回答1:


Here's a console example:

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;

I'm curious to hear the results, btw. :P

You could also throw in a where like:

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

To avoid getting friends within your circle.



来源:https://stackoverflow.com/questions/14688263/cypher-is-it-possible-to-find-creepy-people-following-my-friends

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!