使用Node csv和Relationship csv创建关系

时间:2015-04-19 10:44:59

标签: csv neo4j cypher

我正在使用Neo4j 2.2.0。我有两个csv文件。第一个csv是所有节点的不同列表,例如朋友节点。第二个csv是朋友之间关系的列表。我正在使用浏览器加载数据并创建关系。但是,在创建关系时,它会为Friends创建新节点,而不是使用现有节点。

Cypher用于加载好友 -

   USING PERIODIC COMMIT 10000
   LOAD CSV WITH HEADERS FROM "http://localhost/csv/Friends.csv" AS row
   CREATE (:Friends {Friend_Name: row.Friend_Name});

Cypher用于加载关系 -

   USING PERIODIC COMMIT 10000
   LOAD CSV WITH HEADERS FROM "http://localhost/csv/Relationships.csv" AS row
   MATCH (Friend1:Friends {Friend_Name: row.Friend_Name})
   MATCH (Friend2:Relationships {Friend_Name: row.Friend_Name})
   CREATE (Friend1)-[:Friend_With]->(Friend2);

请有人指出我正确的方向。

1 个答案:

答案 0 :(得分:2)

这是正常的,在你的第二个LOAD CSV语句中,你有这一行:

MATCH (Friend2:Relationships {Friend_Name: row.Friend_Name})

您正在使用Relationships标签,这是错误的。您需要更改为:

MATCH (Friend2:Friends {Friend_Name: row.Friend_Name})

此外,朋友们向我看一个不合适的标签,一个人的标签会更准确,因为友情实际上是你的关系告诉你的关于图的