我想要导入一个包含树结构的大型CSV文件。 删除一些复杂性,我们可以说我的CSV中有三列: - 名称 - ID - parent_id
id是一个唯一的字母数字代码(例如GB234231AB),parent_id从许多节点引用它。
我设法在查找和索引两列中加载CSV,但无法解决Cypher的负载关系。
如何在Neo4J中轻松创建树?
答案 0 :(得分:3)
你这样做,假设你有一个索引:Label(id)(其中label是树元素的节点标签)。
使用Neo4j 2.1.3
如果你加载了父母和孩子
create index on :Label(id);
USING PERIODIC COMMIT 1000
LOAD CSV FROM "....tree.csv" as line
MERGE (n:Label {id:line.id}) ON CREATE SET n.name = line.name
;
然后加载树的关系应该是这样的:
USING PERIODIC COMMIT 1000
LOAD CSV FROM "....tree.csv" as line
MATCH (parent:Label {id:line.parent_id})
MATCH (child:Label {id:line.id})
CREATE (child)-[:PARENT]->(parent)
;