Neo4j加载CSV以创建动态关系类型

Neo4j加载CSV以创建动态关系类型,neo4j,Neo4j,我可以将CSV加载到Neo4j中,以获得特定标签(例如PERSON),节点在标签PERSON下创建 我还有另一个CSV来说明人与人之间的关系,它看起来像: name1, relation, name2 a, LOVE, b a, HATE, c 我想在这些对之间创建一个关系,这样创建的关系应该是“爱”、“恨”等,而不是像下面的脚本那样僵化的关系: load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as

我可以将CSV加载到Neo4j中,以获得特定标签(例如
PERSON
),节点在标签
PERSON
下创建

我还有另一个CSV来说明人与人之间的关系,它看起来像:

name1, relation, name2
a, LOVE, b
a, HATE, c
我想在这些对之间创建一个关系,这样创建的关系应该是“爱”、“恨”等,而不是像下面的脚本那样僵化的
关系

load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as p
match (a:PERSON) where a.name=p.name1
match (b:PERSON) where b.name=p.name2
merge (a)-[r:REL {relation: p.REL}]->(b)
通过这样做,我有了一堆
REL
-类型的关系,但没有
LOVE
-和
HATE
-关系

换句话说,我希望动态分配脚本最后一行中的
REL
。然后我可以使用neo4japi查询出所有的关系类型

这可能吗?

您可以安装,然后使用apoc.merge.relationship

关系(startNode,relType,{key:value,…},{key:value,…},endNode)-使用动态类型合并关系

load csv with headers from "file:///d:/Resources/Neo4j/person-rel.csv" as p
match (a:PERSON) where a.name=p.name1
match (b:PERSON) where b.name=p.name2
call apoc.merge.relationship(a,p.REL,{},{},b) yield rel
return count(*);