首页 文章

Neo4j - 无法从csv加载关系

提问于
浏览
0

我正在尝试从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 回答

  • 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 .

相关问题