我正在尝试获得朋友的建议以在我的应用程序中工作,从 RDBMS 背景学习 Neo4J 是一个令人兴奋但令人沮丧的时间,但我走了。
我需要能够向认识用户的两个或更多直接朋友的人展示。换句话说,根据所附屏幕截图中的图表,我需要一个 Cypher 查询,它为我提供节点 6 和 4。
可以在http://oi39.tinypic.com/j9yogi.jpg上找到截图)
任何帮助都将不胜感激,因为我正在扯掉我的头发。
我正在尝试获得朋友的建议以在我的应用程序中工作,从 RDBMS 背景学习 Neo4J 是一个令人兴奋但令人沮丧的时间,但我走了。
我需要能够向认识用户的两个或更多直接朋友的人展示。换句话说,根据所附屏幕截图中的图表,我需要一个 Cypher 查询,它为我提供节点 6 和 4。
可以在http://oi39.tinypic.com/j9yogi.jpg上找到截图)
任何帮助都将不胜感激,因为我正在扯掉我的头发。
正如 Nicholas 指出的那样,如果您尝试使用 Cypher,这很容易。
见http://console.neo4j.org/r/kt5hd
START n=node(1)
MATCH n-[r:KNOWS*2]->f
WITH count(r) AS count, f
WHERE count>=2
RETURN f
您也可以尝试使用 Gremlin。您在文档中有示例:http: //docs.neo4j.org/chunked/stable/gremlin-plugin.html#rest-api-collaborative-filtering
@Luannes 答案也将返回当前朋友,这不是真正的朋友建议。用这个。
MATCH (joe { name: 'Joe' })-[:knows*2..2]-(friend_of_friend)
WHERE NOT (joe)-[:knows]-(friend_of_friend)
RETURN friend_of_friend.name, COUNT(*)
ORDER BY COUNT(*) DESC , friend_of_friend.name
来自 Neo4j 食谱 http://neo4j.com/docs/stable/cypher-cookbook-friend-finding.html