私はNeo4jを初めて使用しています。私はソーシャルネットワークの視覚化プロジェクトに取り組んでいます。ルートノードのIDに基づいてすべての接続と関係(CONNECTED_TO)を取得したいので、データをループしてD3のデータ構造を構築できます。Cypher、重複なし、空の関係、空のノードなしで、指定されたラベルのすべてのノードと関係を取得
私は、ブラウザ内のクエリの多くで遊んでみました。現在のものはブラウザで正しい結果を返しますが、自動完了はオフですが、NodeJSで返された結果は重複して空の関係を返します。
MATCH p=(a:Connection)-[r:CONNECTED_TO]-(b:Connection)-[r2:CONNECTED_TO]-()
WHERE id(a) = 1673
RETURN [a, b] as nodes [r, r2]
以下のステートメントは、WHERE句を持たないものを返します。 WHERE句が追加されると、パフォーマンスでもあるし、問題がで負担するので、それだけですべての関係
MATCH (a:Connection)-[r:CONNECTED_TO]-(b:Connection)
RETURN [a, b] AS nodes, r AS relationship
約200接続と2200体の関係を持つ媒体側のデータセットのないルートの接続およびその直接接続を返しますマインド。
ご協力いただければ幸いです。 InverseFalconによって提案
UPDATE
APOCパスの拡張手順が良好に動作します。可変長の関係を使用するのと比べて非常に効率的です。
ここで接続されたノードの各ペアリング結果のクエリ
MATCH (head:Connection)
WHERE id(head) = 1673
CALL apoc.path.expandConfig(head, {relationshipFilter:'CONNECTED_TO', uniqueness:'NODE_GLOBAL', bfs: true}) YIELD path
WITH LAST(NODES(path)) as a
MATCH (a)-[r:CONNECTED_TO]->(b)
RETURN [a, b] as nodes, r as relationship
優秀な回答InverseFalconは、非常によく一緒に入れ。正しい方向に私を指してくれてありがとう。 APOC手順のいくつかは、私がこのプロジェクトのために計画している他の機能と本当にうまく機能します。 –