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 @ 2022-11-09 20:25  LexLuc  阅读(222)  评论(0)    收藏  举报