将具有多种关系类型的CSV加载到Neo4j

将具有多种关系类型的CSV加载到Neo4j,neo4j,cypher,Neo4j,Cypher,假设我们有一个具有各种关系类型的节点的CSV。是否有在一个查询中加载CSV的选项,允许每个关系类型显示为关系名称,而不将CSV拆分为单独的文件(每个关系类型一个)?(我们不希望将关系类型作为属性添加到边缘) 我们希望稍后使用类似于以下的查询来显示和查询数据: MATCH l=(p:Id1) - [:type1] - (p:Id2) RETURN l; MATCH l=(p:Id1) - [:type2] - (p:Id2) RETURN l; 您可以使用apoc.create.relati

假设我们有一个具有各种关系类型的节点的CSV。是否有在一个查询中加载CSV的选项,允许每个关系类型显示为关系名称,而不将CSV拆分为单独的文件(每个关系类型一个)?(我们不希望将关系类型作为属性添加到边缘)

我们希望稍后使用类似于以下的查询来显示和查询数据:

MATCH l=(p:Id1) - [:type1] - (p:Id2) RETURN l;  
MATCH l=(p:Id1) - [:type2] - (p:Id2) RETURN l;
您可以使用apoc.create.relationship

考虑到此CSV文件:

Id1|Id2|RelationshipType
1|2|type1
1|3|type2
2|3|type1
加载CSV
查询将是:

LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS line FIELDTERMINATOR '|'
WITH line
MERGE(node0:Node {id : line.Id1})
MERGE(node1:Node {id : line.Id2})
WITH node0, node1, line
CALL apoc.create.relationship(node0, line.RelationshipType, {}, node1) YIELD rel
RETURN *
结果图将为:

注意:记住根据您使用的Neo4j版本安装APOC程序。看一看报纸

LOAD CSV WITH HEADERS FROM 'file:///sample.csv' AS line FIELDTERMINATOR '|'
WITH line
MERGE(node0:Node {id : line.Id1})
MERGE(node1:Node {id : line.Id2})
WITH node0, node1, line
CALL apoc.create.relationship(node0, line.RelationshipType, {}, node1) YIELD rel
RETURN *