2014-10-27 298 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