当前位置: 首页 > 知识库问答 >
问题:

neo4j-无法从csv加载关系

彭阳朔
2023-03-14

下面是我的密码

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文件指定关系。

共有1个答案

曾晨
2023-03-14

我不知道我是否完全理解您的问题,但我猜您正在尝试基于。csv文件的列“relations”创建与类型的关系。

您可以安装APOC过程并使用APOC.create.relationship过程来完成此操作。

此外,您的密码查询可以简化。您不需要调用load CSV3次。尝试如下所示:

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 *
 类似资料:
  • 我从几个csv文件迭代上传节点和边,每个节点类型一个。加载节点工作得很好,但加载边并不总是有效。实际上,有些节点有数字作为标识符--如果是这样的话,所有这种类型的节点都有数字--但加载为字符串,因此创建边失败。手动创建一个边,添加用双引号包装标识符,效果很好。 边缘: 密码命令:

  • 我使用以下命令将数据从csv文件加载到Neo4j中。输入文件很大,有数百万行。当这个查询运行时,我可以查询节点的数量并检查进度。但是一旦它停止创建节点,我想它就会继续创建关系。但我无法检查这一步的进展。 我有两个疑问: 它是否处理每一行文件的命令,即为每一行源码创建节点和关系等?? 或者它一次创建所有节点,然后创建关系。 下面是加载文件的密码器。

  • 我是一个新的4J新手,我有一个简单的CSV与来源和dest IPS。我想在具有相同标签的节点之间创建一个关系。 类似于…source_ip>>ALERTS>>dest_ip,或者相反。 ....