我想导入一个包含树结构的大CSV文件 . 删除一些复杂性,我们可以说我的CSV中有三列: - name - id - parent_id
id是唯一的字母数字代码(例如GB234231AB),parent_id从许多节点引用它 .
我已经设法在查找和索引两列中加载CSV,但无法解决Cypher的负载关系 .
如何在Neo4J中轻松创建树?
1 回答
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)
;
1 回答
你应该这样做,假设你有一个索引:Label(id)(其中label是树元素的节点标签) .
使用Neo4j 2.1.3
如果你加载了父母和孩子
然后加载树的关系应该是这样的: