从CSV文件将树结构加载到Neo4J中

时间:2014-08-11 09:55:34

标签: tree neo4j cypher graph-databases

我想要导入一个包含树结构的大型CSV文件。 删除一些复杂性,我们可以说我的CSV中有三列: - 名称 - ID - parent_id

id是一个唯一的字母数字代码(例如GB234231AB),parent_id从许多节点引用它。

我设法在查找和索引两列中加载CSV,但无法解决Cypher的负载关系。

如何在Neo4J中轻松创建树?

1 个答案:

答案 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)
;