2015-04-19 56 views
2

我正在使用Neo4j 2.2.0。我有两个csv文件。第一个csv是所有节点的不同列表,例如,朋友节点。第二个csv是朋友之间关系的列表。我正在使用浏览器加载数据并创建关系。但是,在创建关系时,它会为朋友创建新节点,而不是使用现有节点。使用节点csv和关系创建关系csv

Cypher支架加载FRIENDS-

USING PERIODIC COMMIT 10000 
    LOAD CSV WITH HEADERS FROM "http://localhost/csv/Friends.csv" AS row 
    CREATE (:Friends {Friend_Name: row.Friend_Name}); 

Cypher支架加载relationships-

USING PERIODIC COMMIT 10000 
    LOAD CSV WITH HEADERS FROM "http://localhost/csv/Relationships.csv" AS row 
    MATCH (Friend1:Friends {Friend_Name: row.Friend_Name}) 
    MATCH (Friend2:Relationships {Friend_Name: row.Friend_Name}) 
    CREATE (Friend1)-[:Friend_With]->(Friend2); 

请可有人点我在正确的方向。

回答

2

这是正常的,在你的第二个LOAD CSV说法,你有这样一行:

MATCH (Friend2:Relationships {Friend_Name: row.Friend_Name}) 

您正在使用关系的标签,这是不对的。您需要更改为:

MATCH (Friend2:Friends {Friend_Name: row.Friend_Name}) 

而且,朋友看我非合适的标签,一个人的标签会更准确的友谊其实你的关系,告诉你有关图形

+0

刚添加一些信息: 我的第一个csv只有一列:朋友的名字(Friend_Name)。 我的第二个csv有两列 - 第一个(Friend_Name)和第二个朋友(Friend_Name2)的名字, –