Neo4j数据导入的几种方式总结

1. 通过Cypher语法直接创建

该方法适合于数据量小的情况下:

例如:
create(n:ability {name:"沟通"})
create(m:train {name:"培训"})
create(n)-[r0:has]->(a:method {name:"交流"})
create(n)-[r1:has]->(b:method {name:"会议"})
create(n)-[r2:has]->(c:method {name:"协作"})
create(n)-[r3:has]->(d:method {name:"汇报"})
create(m)-[r4:can {probability:0.6}]->(a)
create(m)-[r5:can {probability:0.6}]->(b)
create(m)-[r6:can {probability:0.2}]->(d)
return m,n,a,b,c,d,r0,r1,r2,r3,r4,r5,r6

 2. 通过shell命令导入csv文件的方式

导入命令如下(在安装包的bin目录下执行):
neo4j-admin import --mode=csv --database=Test1.db --nodes import-data\test\actor.csv --nodes import-data\test\movie.csv --relationships import-data\test\role.csv

--mode:导入方式
--database:指定数据库
--nodes:节点文件
--relationships:关系文件

注意事项:上述方式需要在一个新的数据库中执行,如果Test1.db已经存在,则执行上述命令会报错,同时要确保csv文件的编码方式“UTF-8”

 3. 在Neo4j可视化窗口通过load命令导入

该方式可以在已存在的数据库上执行,参考命令如下:
```
LOAD CSV WITH HEADERS FROM "file:///PersonRel_Format.csv" AS line
match (from:person{id:line.from_id}),(to:person{id:line.to_id})
merge (from)-[r:rel{property1:line.property1,property2:line.property2}]->(to)
```

注意事项:
1. WITH HEADERS:可选,表明csv文件的第一行是属性名;
2. 导入node时一般用create语句,导入关系时一般用merge语句,防止重复导入
3. Csv文件需要放置在neo4j安装目录下的import文件夹下

 neo4j默认的设置是把文件导入的根目录限制在neo4j根目录的import文件夹下,设置file:///与Cypher LOAD CSV子句一起使用的URL 的根目录。默认值为import。这是一种安全措施,可防止数据库访问标准导入目录之外的文件。设置dbms.directories.import为空删除此安全措施,而是允许访问系统上的任何文件。这是不推荐的。
参考:https://my.oschina.net/sunyouling/blog/877794

 

你可能感兴趣的:(图数据库)