Neo4jでCSVから関係にプロパティを条件付きで追加する方法

ティム・ホールドスワース

私は音楽アーティストのネットワークを示すためにNeo4jグラフを作成しています。

いくつかの列を持つCSVがあります。最初の列は呼ばArtistれ、曲を作った人です。2番目と3番目の列はそれぞれFeature1呼ばFeature2れ、曲の注目アーティストを表します(例https://docs.google.com/spreadsheets/d/1TE8MtNy6XnR2_QE_0W8iwoWVifd6b7KXl20oCTVo5Ug/edit?usp=sharingを参照

特定のアーティストが単一のノードを持つようにマージしました。アーティストは、誰かが紹介された回数を表すプロパティとのFEATURED関係によって接続されstrengthています。関係が初期化されると、関係プロパティの強度は1に設定されます。たとえば(X)-[r:FEATURED]->(Y)、最初発生したときr.strength = 1

CREATE CONSTRAINT ON (a:artist) ASSERT a.artistName IS UNIQUE;
CREATE CONSTRAINT ON (f:feature) ASSERT f.artistName IS UNIQUE;
CREATE CONSTRAINT ON (f:feature1) ASSERT f.artistName IS UNIQUE;

USING PERIODIC COMMIT
    LOAD CSV WITH HEADERS from 'aws/artist-test.csv' as line
MERGE (artist:Artist {artistName: line.Artist})
MERGE (feature:Artist {artistName: line.Feature1})
MERGE (feature1:Artist {artistName: line.Feature2})
CREATE (artist)-[:FEATURES {strength:1}]->(feature)
CREATE (artist)-[:FEATURES {strength:1}]->(feature1)

次に、機能のない曲の[なし]ノードを削除しました

MATCH (artist:Artist {artistName:'None'})
OPTIONAL MATCH (artist)-[r]-() 
DELETE artist, r    

XがCSVのさらに下の別の曲でYを特徴としている場合、コードは現在、との別の(重複した)関係を作成しr.strength = 1ます。新しい関係を作成するのではなく、(以前に作成した)関係を1つだけにして、の値をr.strength1増やしたいと思います。

どうすればこれを行うことができますか?私の現在のアプローチは、重複する関係の束を作成してから、戻ってすべての重複する関係をカウントし、を設定することr.strength = #duplicate relationshipsでした。しかし、私はこれを機能させることができませんでした、そして私がこれにもっと時間を浪費する前に、私はこれを達成するためのより効率的な方法があると思いました。

どんな助けでも大歓迎です。ありがとう!

マイケルハンガー

ON MATCHSETとの関係でMERGEを使用できます

USING PERIODIC COMMIT
    LOAD CSV WITH HEADERS from 'aws/artist-test.csv' as line
MERGE (artist:Artist {artistName: line.Artist})
MERGE (feature:Artist {artistName: line.Feature1})
MERGE (feature1:Artist {artistName: line.Feature2})

MERGE (artist)-[f1:FEATURES]->(feature) 
ON CREATE SET f1.strength = 1
ON MATCH SET f2.strength = f1.strength + 1

MERGE (artist)-[f2:FEATURES]->(feature1) 
ON CREATE SET f2.strength = 1
ON MATCH SET f2.strength = f2.strength + 1

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ノード間に直接の関係がない場合は、Neo4jのcsvfileから関係にプロパティを追加します

分類Dev

neo4j RESTAPIのバッチ操作に関係プロパティを追加する

分類Dev

neo4j のパスにある関係プロパティの合計を返しますか?

分類Dev

プロパティNeo4jで関係をフィルタリングする

分類Dev

Cypherのプロパティの1つによって特定の関係を取得するにはどうすればよいですか?(neo4j)

分類Dev

Neo4j各関係のプロパティフィルターを使用して複数の関係を追加するにはどうすればよいですか?

分類Dev

Neo4jは、apoc.merge.relationship()を使用するときに関係にプロパティを追加します

分類Dev

Neo4jはCSVからノードにプロパティを追加します

分類Dev

以前の関係がNEO4Jに存在する場合は、関係プロパティを更新します

分類Dev

Neo4J:文字列から日付にプロパティを設定するにはどうすればよいですか?

分類Dev

NEO4Jに関係が存在するかどうかに応じて、リターンノードにプロパティを追加するにはどうすればよいですか?

分類Dev

neo4jで配列プロパティを確認する方法は?

分類Dev

Neo4jノードで特定のプロパティを表示する方法

分類Dev

Neo4j / CYPHER:ノード、その関係、およびターゲットノードからいくつかのプロパティを効率的にクエリするにはどうすればよいですか?

分類Dev

Neo4Jで同じプロパティを持つノード間の関係を作成します

分類Dev

Neo4j Cypherは、指定されたプロパティとの関係に達するまでノードを取得します

分類Dev

neo4jで複数のプロパティに制約を作成する

分類Dev

Cypher Neo4Jでプロパティを書き換えるのではなく、プロパティの文字列値に追加するにはどうすればよいですか?

分類Dev

neo4jのリレーションシッププロパティに複数の値を追加するにはどうすればよいですか?

分類Dev

neo4j関係を使用して関連するプロパティを検索します

分類Dev

条件付きで新しい関係を作成するNeo4jクエリを合理化

分類Dev

Neo4jのリストからタイプまたはプロパティの名前を読み取ることはできますか?

分類Dev

存在しない場合はneo4jで関係を作成し、存在する場合はプロパティ値を更新します

分類Dev

neo4j でトリガーを追加するときに関係を作成できません

分類Dev

既存のノードneo4jサイファーにプロパティを追加する方法は?

分類Dev

Reactで条件付きでHTMLプロパティを追加する

分類Dev

Neo4j、ノードプロパティ値の順序に従って関係を作成します

分類Dev

関係を作成するためのNeo4jノードプロパティ配列

分類Dev

neo4jクエリでプロパティを検索する

Related 関連記事

  1. 1

    ノード間に直接の関係がない場合は、Neo4jのcsvfileから関係にプロパティを追加します

  2. 2

    neo4j RESTAPIのバッチ操作に関係プロパティを追加する

  3. 3

    neo4j のパスにある関係プロパティの合計を返しますか?

  4. 4

    プロパティNeo4jで関係をフィルタリングする

  5. 5

    Cypherのプロパティの1つによって特定の関係を取得するにはどうすればよいですか?(neo4j)

  6. 6

    Neo4j各関係のプロパティフィルターを使用して複数の関係を追加するにはどうすればよいですか?

  7. 7

    Neo4jは、apoc.merge.relationship()を使用するときに関係にプロパティを追加します

  8. 8

    Neo4jはCSVからノードにプロパティを追加します

  9. 9

    以前の関係がNEO4Jに存在する場合は、関係プロパティを更新します

  10. 10

    Neo4J:文字列から日付にプロパティを設定するにはどうすればよいですか?

  11. 11

    NEO4Jに関係が存在するかどうかに応じて、リターンノードにプロパティを追加するにはどうすればよいですか?

  12. 12

    neo4jで配列プロパティを確認する方法は?

  13. 13

    Neo4jノードで特定のプロパティを表示する方法

  14. 14

    Neo4j / CYPHER:ノード、その関係、およびターゲットノードからいくつかのプロパティを効率的にクエリするにはどうすればよいですか?

  15. 15

    Neo4Jで同じプロパティを持つノード間の関係を作成します

  16. 16

    Neo4j Cypherは、指定されたプロパティとの関係に達するまでノードを取得します

  17. 17

    neo4jで複数のプロパティに制約を作成する

  18. 18

    Cypher Neo4Jでプロパティを書き換えるのではなく、プロパティの文字列値に追加するにはどうすればよいですか?

  19. 19

    neo4jのリレーションシッププロパティに複数の値を追加するにはどうすればよいですか?

  20. 20

    neo4j関係を使用して関連するプロパティを検索します

  21. 21

    条件付きで新しい関係を作成するNeo4jクエリを合理化

  22. 22

    Neo4jのリストからタイプまたはプロパティの名前を読み取ることはできますか?

  23. 23

    存在しない場合はneo4jで関係を作成し、存在する場合はプロパティ値を更新します

  24. 24

    neo4j でトリガーを追加するときに関係を作成できません

  25. 25

    既存のノードneo4jサイファーにプロパティを追加する方法は?

  26. 26

    Reactで条件付きでHTMLプロパティを追加する

  27. 27

    Neo4j、ノードプロパティ値の順序に従って関係を作成します

  28. 28

    関係を作成するためのNeo4jノードプロパティ配列

  29. 29

    neo4jクエリでプロパティを検索する

ホットタグ

アーカイブ