gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:15:11 24 4
gpt4 key购买 nike

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

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

name1, relation, name2
a, LOVE, b
a, HATE, c

我想在这些对之间创建关系,因此创建的关系应该是“爱”、“恨”等,而不是像下面的脚本那样严格的RELATION:

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 类型的关系,但没有LOVEHATE 类型的关系。

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

这可能吗?

最佳答案

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

apoc.merge.relationship(startNode, relType, {key:value, ...}, {key:value, ...}, endNode) - merge relationship with dynamic type

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

关于Neo4j 加载 CSV 以创建动态关系类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47808421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com