记录csv导入neo4j

csv为三国关系来源dataset/data/data/三国演义/triples.csv at master · really-code/dataset (github.com)

head tail relation label 0 关羽 刘备 younger_sworn_brother 义弟 1 张飞 刘备 younger_sworn_brother 义弟 2 关羽 张飞 elder_sworn_brother 义兄 3 张苞 张飞 son 儿子 4 关兴 关羽 son 儿子

CSV文件包含以下列:

  • head: 表示起始节点的名称
  • tail: 表示目标节点的名称
  • relation: 表示起始节点和目标节点之间的关系的名称
  • label: 表示关系的标签

根据这个结构,我们可以修改Cypher脚本,使其能够导入这个CSV文件的数据到Neo4j数据库中。以下是修改后的Cypher脚本:

cypher

复制

LOAD CSV WITH HEADERS FROM "file:///triples.csv" AS row
MATCH (from:Entity {name: row.head}), (to:Entity {name: row.tail})
MERGE (from)-[r:RELATION {relation: row.relation, label: row.label}]->(to)

请注意,此脚本假定数据库中已经存在名称为 Entity 的节点,并且这些节点的 name 属性对应于CSV文件中的 head 和 tail 列。如果数据库中还没有这些节点,你需要先创建它们。

现在,你可以将这个脚本复制到Neo4j的浏览器界面中的查询编辑器中,然后执行它来导入数据。在执行之前,请确保Neo4j数据库正在运行,并且你有足够的权限来执行导入操作。同时,请确保CSV文件位于Neo4j实例的导入目录中。如果你需要进一步的帮助,请告诉我。

用户_QsrjwB

(no changes, no records)

如果你在尝试导入数据到Neo4j数据库时发现 “no changes, no records”,这通常意味着Cypher查询没有找到任何匹配的节点,因此没有创建任何新的节点或关系。这个问题可能是由于以下几个原因:

  1. 数据库中可能不存在与CSV文件中的 head 和 tail 列匹配的节点。
  2. CSV文件的路径可能不正确,或者文件可能没有正确上传到Neo4j的导入目录。
  3. Cypher查询可能存在语法错误或逻辑错误。

为了解决这个问题,我们可以采取以下步骤:

  1. 确保CSV文件已经被正确上传到Neo4j实例的导入目录中。
  2. 修改Cypher查询,以便在找不到匹配节点时创建这些节点。

以下是修改后的Cypher脚本,它会在找不到匹配节点时创建这些节点:

cypher

复制

LOAD CSV WITH HEADERS FROM "file:///triples.csv" AS row
MERGE (from:Entity {name: row.head})
MERGE (to:Entity {name: row.tail})
MERGE (from)-[r:RELATION {relation: row.relation, label: row.label}]->(to)

这个脚本使用了 MERGE 而不是 MATCH,这意味着如果数据库中不存在与 row.head 和 row.tail 匹配的节点,Neo4j将会创建这些节点。然后,它创建一个从 from 节点到 to 节点的 RELATION 类型关系,并设置关系的 relation 和 label 属性。

请确保将上述脚本中的 file:///triples.csv 替换为实际的文件路径。在Neo4j的导入目录中,可以省略文件协议前面的部分,所以脚本应该看起来像这样:

LOAD CSV WITH HEADERS FROM "file:/triples.csv" AS row
MERGE (from:Entity {name: row.head})
MERGE (to:Entity {name: row.tail})
MERGE (from)-[r:RELATION {relation: row.relation, label: row.label}]->(to)

现在,你可以将这个脚本复制到Neo4j的浏览器界面中的查询编辑器中,然后执行它来导入数据。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值