0

我正在尝试获得朋友的建议以在我的应用程序中工作,从 RDBMS 背景学习 Neo4J 是一个令人兴奋但令人沮丧的时间,但我走了。

我需要能够向认识用户的两个或更多直接朋友的人展示。换句话说,根据所附屏幕截图中的图表,我需要一个 Cypher 查询,它为我提供节点 6 和 4。

可以在http://oi39.tinypic.com/j9yogi.jpg上找到截图)

任何帮助都将不胜感激,因为我正在扯掉我的头发。

4

3 回答 3

3

正如 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
于 2013-11-19T03:24:14.727 回答
0

您也可以尝试使用 Gremlin。您在文档中有示例:http: //docs.neo4j.org/chunked/stable/gremlin-plugin.html#rest-api-collaborative-filtering

于 2013-11-19T08:56:55.140 回答
0

@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

于 2015-03-11T21:22:57.430 回答