Neo4j Cypher - 使用两个CSV文件创建关系

时间:2017-08-18 11:07:48

标签: neo4j cypher

我是Neo4j的新手,我正在努力建立一个引文网络。

我有两个CSV文件,一个包含节点属性,另一个包含关系属性。

PAPERS.CSV -

paperId, title, year
123, abc, 1900
234, cde, 1902
456, efg, 1904

CITES.CSV -

fromId, ToId
123, 234
234, 456

我的图表应该看起来像(123)--cites-->(234)--cites-->(456)。 使用这些文件如何在节点之间创建关系?

1 个答案:

答案 0 :(得分:4)

您应该避免标题名称和数据中的空格。 如果它不受您的控制,那么您可以使用修剪功能和反引号来引用headername。但通常情况下,你的csv应该是干净的。 您的文件应该在neo4j的import目录中。否则你应该在neo4j.conf中注释掉dbms.directories.import = import属性。

您可以创建如下节点:

   LOAD CSV WITH HEADERS FROM "file:///PAPERS.CSV" as line
   CREATE (p:Paper {paperId:trim(line.paperId), title: trim(line.` title`), year: trim(line.` year`)});

你可以创建这样的关系:

   LOAD CSV WITH HEADERS FROM "file:///CITES.CSV" as line
   MATCH (p1:Paper {paperId:trim(line.fromId)})
   MATCH (p2:Paper {paperId:trim(line.` ToId`)})
   CREATE (p1)-[:CITES]->(p2);