gpt4 book ai didi

Neo4J CSV 关系

转载 作者:行者123 更新时间:2023-12-04 23:18:36 32 4
gpt4 key购买 nike

我是 Neo4J 新手,我有一个带有源和目标 IP 的简单 CSV。我想在具有相同标签的节点之间创建关系。

类似于... source_ip >> ALERTS >> dest_ip,或者相反。

"dest_ip","source_ip" 
"130.102.82.16","54.231.19.32"
"130.102.82.116","114.30.64.11"
"130.102.82.116","114.30.64.11"
...

LOAD CSV WITH HEADERS
FROM "file:///Users/me/Desktop/query_result.csv" AS csvLine
CREATE (alert:Alert { source_ip: csvLine.source_ip, dest_ip: csvLine.dest_ip})

MATCH (n:Alert) RETURN n LIMIT 25

dest_ip 130.102.82.16 source_ip 54.231.19.32

....

这工作正常。我的问题是如何创建警报内标签之间的关系?我已经尝试并失败了很多次。我猜我需要为 Source 和 Dest 设置单独的节点,然后将它们链接起来,只是不确定如何。

提前致谢!

和平,
汤姆

最佳答案

首先创建一个这样的约束,以保证唯一性并加速MERGE手术。

CREATE CONSTRAINT ON (a:Alert) ASSERT a.ip IS UNIQUE;

您可以使用多个 CREATE根据需要进行声明,然后 MERGE关系,像这样:
LOAD CSV WITH HEADERS 
FROM "file:///Users/me/Desktop/query_result.csv" AS csvLine
MERGE (node1:Alert { ip: csvLine.source_ip })
MERGE (node2:Alert { ip: csvLine.dest_ip })
MERGE (node1)-[r:ALERT]->(node2)

顺便说一句,我建议使用 MERGE在大多数地方,以确保您最终不会创建重复项。在这个文件中,某个 IP 地址可能会被多次列出,您不希望每次创建新节点时都需要一个新节点,您可能希望所有引用都在该 IP 地址下,因此 MERGE这里而不是 CREATE

关于Neo4J CSV 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33548471/

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