How to import relationships between nodes of the same label from a csv file in neo4j?

眉间皱痕 提交于 2019-12-11 12:17:05

问题


I have two separate csv files that I need to import into my neo4j database. The first file contains all the nodes that I wish to import. The information is classified as follows:

                             id, Name 

                              1, Earth science

To import it, I successfully used the following code:

LOAD CSV WITH HEADERS FROM 'file:///Node_test.csv' AS line

CREATE (:Discipline { id: toInt(line.id), name: line.Name})

Now, I want to import my relationship file and create all the relationship between the nodes I just imported. The information in the relationship.csv file is classified as follows:

                 RelationshipID, parentID, relationship_type, childID

                              1, 2, IS_A_PARENT_DISCIPLINE_OF, 5

To import it, I used the following code, without success :

USING PERIODIC COMMIT 500 LOAD CSV WITH HEADERS FROM "file:///relationship_test.csv" AS csvLine

MATCH (DParent:Discipline { id: toInt(csvLine.parentID)}),(DChild:Discipline { id: toInt(csvLine.childID)})

CREATE (DParent)-[:IS_A_PARENT_DISCIPLINE_OF { id:toInt(csvLine.RelationshipID) } ]->(DChild)

Note: The result doesn't show any errors, it just returned no changes, no rows.

Please see the links below for other documentations I found regarding the subject; I have not found any documentation describing how to import csv files in order to create relationships between nodes of the same Label.

http://neo4j.com/docs/2.3.0-M01/cypherdoc-importing-csv-files-with-cypher.html

How do i create relationships for existing nodes by importing csv file in neo4j?

Spring Data Neo4j 4.0.0: Can't Create Relationship Between Nodes with the Same Label


回答1:


The following is the content of the import.cypher file that you need to create and run in the neo4j-shell to import the data...

Important thing is when matching and trying to create relationships you need to use the MERGE command

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:data/node.csv" AS row
CREATE (:Discipline{disciplineId: toInt(row.id), name: row.Name});

USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:data/rels.csv" AS row
MATCH (parent:Discipline{disciplineId: toInt(row.parentID)})
MATCH (child:Discipline {disciplineId: toInt(row.childID)})
MERGE (parent)-[:IS_PARENT_DISCIPLINE_OF]->(child);


来源:https://stackoverflow.com/questions/31439249/how-to-import-relationships-between-nodes-of-the-same-label-from-a-csv-file-in-n

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!