Tom*_*ons 4 relationship neo4j cypher
我是一个Neo4J新手,我有一个简单的CSV源码和目标IP.我想在具有相同标签的节点之间创建关系.
像... 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
Run Code Online (Sandbox Code Playgroud)
....
这很好用.我的问题是如何在警报内部创建标签之间的关系?我已经尝试过很多次失败了.我猜我需要为Source和Dest设置单独的节点然后链接它们,只是不确定如何.
提前致谢!
和平,汤姆
首先创建这样的约束,以保证唯一性并加快MERGE操作.
CREATE CONSTRAINT ON (a:Alert) ASSERT a.ip IS UNIQUE;
Run Code Online (Sandbox Code Playgroud)
您可以根据需要使用尽可能多的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)
Run Code Online (Sandbox Code Playgroud)
通过,我建议MERGE在大多数地方使用,以确保你不会最终创建重复.在此文件中,某个IP地址可能会多次列出,每次创建时都不需要新节点,您可能希望在该IP地址下进行所有引用,因此MERGE这里不是CREATE
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |