2014-10-27 79 views
2

我想用Cypher查询在Neo4j中创建树结构。在Neo4j中创建树结构

我正在将数据从CSV加载到图表。

数据结构是。其具有两个列,它是父母和子女

P1,C1

P1,C2

P1,C3

C1,SC1

C1,SC2

C2, SC3

C3,SC4

SC1,SSC1

SC2,SSC2

等....

这里P是第一电平(父,母1)和C是儿童,SC是子儿和SSC是Sub-Sub-Child, 我想加载数据并创建自上而下的树形结构

我已经使用了这个Query但没有得到树结构。

LOAD CSV FROM 'file:C:/Users/ykumarx077781/Desktop/parent.csv' AS line 

CREATE (Parent:Parent { Parent: line[0]}) 

CREATE (Child:Child { Child: line[1]}) 

CREATE (Parent)-[R:Parent_off]->(Child) 

return R; 

请帮我创建结构..

还用MERGE,但没有得到

LOAD CSV FROM 'file:C:/Users/ykumarx077781/Desktop/parent.csv' AS line 

MERGE (Parent:Parent { Parent: line[0]}) 

MERGE (Child:Child { Child: line[1]}) 

CREATE (Parent)-[R:Parent_off]->(Child) 

return R; 

回答

1

尝试

上创建索引:节点(ID)

LOAD CSV FROM 'file:C:/Users/ykumarx077781/Desktop/parent.csv' AS line 

MERGE (Parent:Node { id: line[0]}) ON CREATE SET Parent:Parent 

MERGE (Child:Node { id: line[1]}) ON CREATE SET Child:Child 

MERGE (Parent)-[R:Parent_off]->(Child) 

return R; 
+0

CSV中的其他领域怎么样?但是,你如何包括(例如) “标题”字段(如果它是CSV中的第3列)。 – geoidesic 2016-08-08 14:50:39

1

你必须使用MERGE为您可能想重用任何节点,见http://neo4j.com/docs/stable/cypherdoc-importing-csv-files-with-cypher.html例如为国家。

+0

斯特凡嗨, 我用MERGE这样。 LOAD CSV FROM'file:C:/Users/ykumarx077781/Desktop/parent.csv'AS line MERGE(Parent:Parent {Parent:line [0]}) MERGE(Child:Child {Child:line [1 ]}) CREATE p =(Parent) - [:Parent_off] - >(Child) CREATE pp =(Parent) - [:Parent_of] - >(PARENT) RETURN pp 但是无法获取树结构。 。其中父母有子女,子女有子女,子女有子女,以树状结构连接 – 2014-10-31 06:47:55