neo4j批量导入数据操作备忘

全量导入

$ neo4j stop &&
neo4j-import --into /path/to/neo4j/neo4j-community-3.3.0/data/databases/graph.db --id-type string --delimiter "csv文件列分隔符" --ignore-missing-nodes=true --skip-duplicate-nodes=true --skip-bad-relationships=true --ignore-extra-columns=true --bad-tolerance=100000000000  --nodes:实体名称 实体csv文件路径  --relationships:关系名称 关系csv文件路径 && 
neo4j start

增量导入

导入实体

USING periodic commit 100000 
LOAD CSV FROM "file:/some_csv/entity/KNOWLEDGE_keyword.csv" AS line fieldterminator "," 
MERGE (:KNOWLEDGE_keyword {word:line[0], left:toFloat(line[1]), right: toFloat(line[2]), agg: toFloat(line[3])})

导入关系

USING periodic commit 100000 
LOAD CSV FROM "file:/some_csv/relation/PARENT_KW.csv" AS line fieldterminator "," 
MATCH (s:KNOWLEDGE_keyword {word:line[0]}) 
MATCH (t:KNOWLEDGE_keyword {word:line[1]}) 
MERGE (s)-[r:PARENT_KW]->(t)

如果csv文件有header,可以用 LOAD CSV WITH HEADERS 完成导入:

word,left,right,agg
manifest,3.809602881889254,3.6618589888170905,2766148415982.0
for,6.485841589318351,5.915330168943567,2299.469830672736
cline,5.457153646587089,7.185567251887322,93.63024602727756
函数,6.380031459882535,5.543128117048201,167.34347518358996
但是,5.868707992709903,5.962722075878112,170.1050099123602
USING periodic commit 100000
LOAD CSV WITH headers FROM 'file:///some_csv/entity/filename.csv' AS line
CREATE (:KNOWLEDGE_keyword {word:line.word, left:toFloat(line.left), right:toFloat(line.right), agg:toFloat(line.agg)})
posted @   LexLuc  阅读(212)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示