我是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)
。
使用这些文件如何在节点之间创建关系?
答案 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);