複数のツリーがあるとします。
A<-{D, E}<-F
B<-{E, G}
C<-{E, H}
//Where only A, B, and C are of (:parent{name:""})
//There rest is child
子ノードのセットが与えられた場合:
{E, F} //(:child{name:""})
//Clearly A is the most connected parent even if F is not directly connected to A
質問:子ノードコレクションを指定して、最も接続されている親ノードを見つけるにはどうすればよいですか?あらゆる暗号クエリ、プラグイン関数、またはプロシージャを歓迎します。助けて。
これが私が試したものですが、2つのノード間の関係全体をカウントするため運がありません。
MATCH (c:child)--(p:parent)
WHERE c.name IN ['E', 'F']
RETURN p ORDER BY size( (p)--(c) ) DESC LIMIT 1
//Also tried size( (p)--() ) but it count all relationship that the parent node has.
欠落している概念は、可変長の関係パターンです。これにより、必要な:childノードから可変距離の:parentノードを照合し、親ノードが発生する回数を数えて、上位を占めることができます。
MATCH (c:child)-[*]->(p:parent) // assumes only incoming rels toward :parent
WHERE c.name IN ['E', 'F'] // make sure you have an index on :child(name)
WITH p, count(p) as connected
RETURN p
ORDER BY connected DESC
LIMIT 1
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加