2017-06-18 2 views
1

次のことを達成しようとしていますが、これを行う方法を理解できません。サブグラフ内の1つのタイプのノードのみに接続されたノードカップル

私はノード:A,:S1,:S2:tおよび:kを持っています。

私は:Sまたは:S1ノードに:Aノードに接続され、接続されることはありません:tノード(もちろんの両方)のカップルを見つけたいが、私は:A:S:S1部分グラフでそれをやりたいですノードは別のノード(:k{t:1})に接続されています。部分グラフなし

はそれのような非常に簡単です必要があります。

match p=(n:t)-[]-(:A)-[]-(m:t) 
WHERE NOT (n)-[]-(:S)-[]-(m) 
and NOT (n)-[]-(:S1)-[]-(m) 
WITH n,m,count(p) as test 
where test >4 
return n.token,m.token,test ORDER BY test DESC 

しかし、どのように私は私の

(:A)--(:k{t:1}) 

(:S)--(:k{t:1}),(:S1)--(:k{t:1}) 

関係に置けばいいの?

答えて

0

MATCHサブグラフの最初と最後の後には、MATCH n個のノードの望ましいカップルはどうですか?

この方法:

// First MATCH (:A)--(:k{t:1}), (:S)--(:k{t:1}), (:S1)--(:k{t:1}) 
// Store the matched nodes in a, k, s and s1 variables 
MATCH (a:A)--(k:k{t:1}), 
(s:S)--(k), 
(s1:S1)--(k) 

// Using a, k, s and s1 match couple of n... 
// connected with a 
MATCH p = (n:t)--(a)--(m:t) 
// not connected with s 
WHERE NOT (n)--(s)--(m) 
// and not connected with s1 
AND NOT (n)--(s1)--(m) 
WITH n, m, count(p) as count 
WHERE count > 4 
RETURN n.token, m.token, count 
ORDER BY count 
関連する問題