2016-05-26 33 views
0

疎行列として.csvに格納された小さな有向グラフを取得しました。私はこれをインポートする> 2 1-> 3 2-、1-> 3等:neo4jとcypherを使用して.csvから疎行列を直接グラフにインポート

1,2 
2,3 
1,3 
1,4 
2,5 
3,4 
3,5 
4,5 

すべての行が2つのノード間の隣接関係が基本的に:ファイルは次の形式で2つの列を含みますデータをneo4jに挿入し、グラフを作成します(最初のステップとして、無向グラフにすることができます)。

私は、次のサイファーのコードを試してみました:

LOAD CSV FROM 'file:///dummy.csv' AS line 
CREATE((:node {`name`:line[1]})-[:`connects`]->(:node {`name`:line[2]})) 

は、これは私がこれまで行ってきた遠いですが、結果は私が欲しいものではありません。私はファイルをneo4jに読み込んでいますが、ノードの重複が多い2つのノードで構成される複数の小さなグラフしか取得できません。私の目的は、すべての行を隣接関係として読み込み、ノードの複製を生成せずに既存のノードに接続を追加することです。また、私は理想的には、グラフの視覚化の間に(ノードIDの代わりに)それ自身の上に各ノードのnameプロパティを表示したいと思います。あなたの助けに感謝します。

答えて

1

重複したノードとの関係を作成しないようにMERGEを使用する必要があります。

LOAD CSV FROM 'file:///dummy.csv' AS line 
MERGE (a:node {name:line[0]}) 
MERGE (b:node {name:line[1]}) 
MERGE (a)-[:connects]->(b); 

また、the documentation for how to style the browser visualizationを参照してください。

+0

ポインターをありがとう、視覚化のためにそうします。あなたのコードを実行すると、私は 'line [2]'でエラーになります。私が行[2]を行[1]に置き換えると、うまく動作しますが、もちろん目的の出力が得られません。 LOAD CSV FROM 'file:///dummy.csv' AS line return line [2] すべてのヌル値を取得しています...つまり、2番目の列が正しく読み込まれないことを意味します。 – en1

+1

コレクションインデックスの起点は0なので、使用されるインデックスは0と1である必要があります。私は自分の答えを更新しました。 – cybersam

+0

ああ、私は考えていたはずです。とにかく、それは動作します、ありがとう! – en1

関連する問題