2017-02-01 21 views
1

を使用してneo4jでサブグラフを抽出しました。私はneo4j 3.1をjava 8で使用しています。接続データベースをサブデータベースとして抽出し、テストデータベースとして保存します。 できますか? 句を使用して出力を返す方法。したがって、新しいノードとリレーションシップを作成するか、サブグラフをエクスポートして新しいデータベースに配置する必要がありました。cypherクエリ

グラフが接続されていないので、接続された部分グラフをどのように抽出できますか?

はありがとうござい

これには2つの部分...接続部分グラフを取得した後、エクスポートするための手段を見つけることがあります

答えて

1

APOC Proceduresこれらの両方をカバーできるようです。 this answerのアプローチでは、連結サブグラフのすべてのノードを取得する必要があります(関係タイプが問題でない場合は、relationshipFilterパラメータを省略してください)。

次のステップは、これらのノード間のすべての関係を取得することです。 graph algorithms sectionのAPOCのapoc.algo.cover()関数でこれを達成する必要があります。

(これは部分グラフクエリの後で、かつsubgraphNodeが別個の部分グラフノードの列のためのスコープ内にあると仮定して)このような何か:

... 
WITH COLLECT(subgraphNode) as subgraph, COLLECT(id(subgraphNode)) as ids 
CALL apoc.algo.cover(ids) YIELD rel 
WITH subgraph, COLLECT(rel) as rels 
... 

今、あなたは内の両方のノードとの関係のコレクションを持っていることサブグラフをエクスポートすることができます。

APOCの手順には、CSVからCypherScriptのseveral means of exportingがあります。あなたはあなたのために働くオプションを見つけることができるはずです。

+0

私はAPOCをインストールし、私がテストしようとしています私が初めて使って以来、それがどのように働いているのかわからない例 ありがとう – MAYA

+0

私はこれを試して、それは完全に動作します。しかし、私はこのパラメータの意味を知りたいです:MaxLevelと一意性: "Node_global"? – MAYA

+0

'maxLevel'と' minLevel'は、トラバースする際のトラバーサルの最小数と最大数を定義します。パス長は、パスの長さ(開始ノードからのトラバースの数)が与えられたレベルの間である場合にのみ返されます。 – InverseFalcon

0

またのNeo4jデータベースでそれを再インポートするファイルにクエリの結果を抽出するためにneo4j-shellを使用して、この同じファイルを使用することができます。

[email protected] ~/d/_/310> ./bin/neo4j-shell -c 'dump MATCH (n:Product)-[r*2]->(x) RETURN n, r, x;' > result.cypher 

チェックファイル

[email protected] ~/d/_/310> cat result.cypher 
begin 
commit 
begin 
create (_1:`Product` {`id`:"product123"}) 
create (_2:`ProductInformation` {`id`:"product123EXCEL"}) 
create (_3:`ProductInformationElement` {`id`:"product123EXCELtitle", `key`:"title", `value`:"Original Title"}) 
create (_5:`ProductInformationElement` {`id`:"product123EXCELproduct_type", `key`:"product_type", `value`:"casual_bag"}) 
create (_1)-[:`PRODUCT_INFORMATION`]->(_2) 
create (_2)-[:`INFORMATION_ELEMENT`]->(_3) 
create (_2)-[:`INFORMATION_ELEMENT`]->(_5) 
; 
commit 

は別のNeo4jを供給するため、このファイルを使用します。

[email protected] ~/d/_/310> ./bin/neo4j-shell -file result.cypher 
Transaction started 
Transaction committed 
Transaction started 
+-------------------+ 
| No data returned. | 
+-------------------+ 
Nodes created: 4 
Relationships created: 3 
Properties set: 8 
Labels added: 4 
52 ms 
Transaction committed 
+0

私はこれを試しましたが、私はneo4jの2つのインストールがあります: - 私はneo4jをインストールしました。exeとそこにpy2neoでデータベースを作成しましたが、これにはneo4j-shellが含まれていません - neo4j .zipがインストールされましたが、データベースはありません。 どうすればいいですか? – MAYA

+0

arghには本当に助けることができない恐竜が地球上から姿を消しているので、Windowsの使用しませんでした:/ –

+0

[OK]をありがとう:) – MAYA

関連する問題