我正在尝试从csv加载数据并在Neo4j中显示节点以及关系图。我能够在Neo4j中加载entity1和entity2,但无法从csv加载关系。 我的csv文件看起来像这个
以下是我的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))
请告诉我,如何指定csv文件的关系。
答案 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。