如何从多CSV文件导入数据时合并Neo4j重复节点?
Neo4j多CSV导入问题:合并重复节点并补充节点信息
我接触Neo4j仅数日,现尝试通过多个CSV文件构建数据库:
- styles.csv:包含知名建筑师与建筑信息
- architects.csv:存储建筑师的额外信息
- buildings.csv:存储建筑的额外信息
数据结构示例
Styles csv

Buildings csv

Architects csv

按顺序导入CSV时,同名节点会被重复创建,例如'roman'风格节点出现重复。我当前按顺序加载各CSV,并对多值单元格执行UNWIND操作,使用的Cypher语句如下:
LOAD CSV WITH HEADERS FROM 'file:///restructured_data_styles.csv' AS stylesheet MERGE (s:Style {Style: stylesheet.Style, Dates: stylesheet.`Dates`, Location: stylesheet.Location}) WITH s, stylesheet UNWIND split(stylesheet.`Examples`, ';') AS stylebuildings MERGE (buildings:Building{name:stylebuildings}) MERGE (s)-[rbs:BUILT_IN_STYLE]->(buildings)
LOAD CSV WITH HEADERS FROM 'file:///restructured_data_architects.csv' AS architectsheet MERGE (a:Architect {Architect: architectsheet.Name, Born: architectsheet.Born, Died: architectsheet.Died, Description: architectsheet.Description}) WITH a, architectsheet UNWIND split(architectsheet.`Buildings`, ';') AS architectbuildings MERGE (buildings:Building{name:architectbuildings}) MERGE (a)-[rab:NOTABLE_PROJECTS]->(buildings)
我希望导入各CSV时,Neo4j能补充各文件提供的额外信息,同时合并重复节点并保留已有的关系。目前文件内的关系正常,但无法在CSV间关联节点与关系。我了解过APOC重构,但作为非数据从业者的新手,需要通俗易懂的解决方案。
内容的提问来源于stack exchange,提问作者anji
相关产品推荐
相关产品推荐

