我是 neo4j 的新手,非常感谢您的帮助。
我在 neo4j 中创建了以下图表。
n1----n2----n3----n4---n5
n1,n2,n3,n4,n5 都是节点 --- : relationship_type_1 (REL)
现在给定任何一组节点(以任何顺序),我想检查这些节点是否连接。例如,给定 n1,n2,n3 ==> 已连接。给定 n1, n3, n2, n4, n5 ==> 已连接。
我应该如何制定我的密码查询来检查连接性?
即使我更改订单,以下查询仍在工作,
MATCH p=_1--_2--_3
WHERE _1.name?="Node1" and ALL (n in nodes(p)
WHERE n.name IN ["Node1", "Node2", "Node4"])
RETURN nodes(p);
在http://console.neo4j.org/?id=xl8pnl
但是如果我提供起始节点而不是使用 _1,_2 并更改顺序,那么它不会返回我的路径。:(
http://console.neo4j.org/?id=xl8pnl 用于以下查询,
START p1=node(6),p2=node(5),p3=node(4) MATCH p=p1--p2--p3
WHERE p1.name?="Node1" AND ALL (n IN nodes(p) WHERE n.name IN ['Node1' ,'Node3', 'Node2' , 'Node4'])
RETURN nodes(p)
它不会返回路径,因为节点按 node(6)-node(5)-node(4) 顺序连接。