私は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) の順序で接続されているため、パスは返されません。