Neo4j - 无法从csv加载关系

时间:2017-09-25 13:05:10

标签: neo4j cypher

我正在尝试从csv加载数据并在Neo4j中显示节点以及关系图。我能够在Neo4j中加载entity1和entity2,但无法从csv加载关系。 我的csv文件看起来像这个enter image description here

以下是我的CYPHER代码

LOAD CSV WITH HEADERS FROM "file:////csvFiles/Fraud_Triplets_Neo4j.csv" AS csvLine
MERGE (a:Subject {
 Object1:csvLine.Entity1
,display:csvLine.Entity1
 });


LOAD CSV WITH HEADERS FROM
"file:////csvFiles/Fraud_Triplets_Neo4j.csv" AS csvLine 
MERGE (b:Object {  Object2:csvLine.Entity2 ,display:csvLine.Entity2  });

  LOAD CSV WITH HEADERS FROM "file:////csvFiles/Fraud_Triplets_Neo4j.csv" AS csvLine
MATCH (a:Subject { Object1: csvLine.Entity1})
MATCH (b:Object { Object2: csvLine.Entity2})
MERGE ((a) -[:Relation{r:csvLine.Relation}]-> (b))

我得到了this graph

请告诉我,如何指定csv文件的关系。

1 个答案:

答案 0 :(得分:1)

我不知道我是否完全理解你的问题,但我想你是想尝试根据.CSV文件的“关系”列创建与类型的关系。

您可以安装APOC Procedures并使用apoc.create.relationship程序。

此外,您的Cypher查询可以简化。您无需致电LOAD CSV 3次。尝试这样的事情:

LOAD CSV WITH HEADERS FROM "file:////csvFiles/Fraud_Triplets_Neo4j.csv" AS csvLine

MERGE (a:Subject {
    Object1:csvLine.Entity1,
    display:csvLine.Entity1
});

MERGE (b:Object {
    Object2:csvLine.Entity2,
    display:csvLine.Entity2
});

CALL apoc.create.relationship(a, csvLine.Relation, {}, b) YIELD rel

RETURN *

注意:请记住根据您使用的Neo4j版本安装APOC程序。请查看Version Compatibility Matrix