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

Neo4j Cypher-使用两个CSV文件创建关系,neo4j,cypher,Neo4j,Cypher,我是Neo4j的新手,目前正致力于建立一个引文网络 我有两个CSV文件,一个包含节点属性,另一个包含关系属性 文件.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)。 如何使用这些文件在节点之间创建关系?您应该避免在标题名称和数

我是Neo4j的新手,目前正致力于建立一个引文网络

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

文件.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)

如何使用这些文件在节点之间创建关系?

您应该避免在标题名称和数据中使用空格。 如果它超出了您的控制范围,那么您可以使用修剪功能和反勾号来引用headername。但通常情况下,您的csv应该是干净的。 您的文件应该位于neo4j的导入目录中。否则,您应该注释掉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);
您可以创建如下关系:

   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);

您应该避免在标题名称和数据中使用空格。 如果它超出了您的控制范围,那么您可以使用修剪功能和反勾号来引用headername。但通常情况下,您的csv应该是干净的。 您的文件应该位于neo4j的导入目录中。否则,您应该注释掉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);
您可以创建如下关系:

   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);

非常感谢。它可以工作,但是当我查询
match(n)时返回(n)
。我只能看到节点。我是否应该使用任何其他查询来查看整个关系图?我认为您应该正常查看关系。如果没有,则可以展开节点(如果在其上计时),然后单击展开子关系。或者你可以使用这个查询:MATCH p=()-[r:CITES]->()返回p LIMIT 25谢谢!!它可以工作,但是当我查询
match(n)时返回(n)
。我只能看到节点。我是否应该使用任何其他查询来查看整个关系图?我认为您应该正常查看关系。如果没有,则可以展开节点(如果在其上计时),然后单击展开子关系。或者您可以使用以下查询:MATCH p=()-[r:CITES]->()返回p LIMIT 25