当前位置: 首页 > news >正文

实用指南:Neo4j:从文件里读数据(LOAD + FROM) → 在图里找节点(MATCH)或创建节点(MERGE) → 建立关系

一、先给你一个“总览直觉”

在 Neo4j 里,一条导入语句大致是这样工作的:

从文件里读数据(LOAD + FROM) →
在图里找节点(MATCH)或创建节点(MERGE) →
建立关系


二、一个一个拆开讲(非常重要)


1️⃣ LOAD CSV

✅ 是什么

LOAD CSV = “从 CSV 文件中一行一行读取数据”

你可以把它理解成:

“for each row in this CSV file”


✅ 你用过的例子

LOAD CSV WITH HEADERS
FROM "file:///neo4j_wtg_nodes.csv" AS line

拆解意思:

部分含义
LOAD CSV说明要读 CSV
WITH HEADERS第一行是列名
FROM "file:///xxx.csv"文件路径
AS line每一行叫 line

之后你就可以用:

line.node_id

❗什么时候用

导入数据时必用
Neo4j 从外部文件读取数据的唯一方式之一


2️⃣ FROM

✅ 是什么

FROM = 指定数据来源

在 Neo4j 中几乎只跟 LOAD CSV 搭配。

FROM "file:///xxx.csv"

注意两点(很重要):

  1. 必须放在 neo4j/import 目录
  2. 路径前面必须是:
file:///

3️⃣ MATCH

✅ 是什么

MATCH = 在图数据库中“查找已经存在的节点或关系”

你可以把它理解成:

“在图里找符合条件的东西”


✅ 你用过的例子

MATCH (a:WTG_Variable {name: line.src})
MATCH (b:WTG_Variable {name: line.dst})

含义是:

  • 找一个 name = line.src 的节点
  • 找一个 name = line.dst 的节点

⚠️ MATCH 不会创建东西

  • 找不到 → 返回空 → 后面的语句不执行

❗什么时候用

节点已经存在,只想用它
✔ 建立关系前几乎一定要 MATCH


4️⃣ MERGE(最关键的一个)

✅ 是什么

MERGE = “如果存在就用,不存在就创建”

它相当于:

SQL 里的 SELECT + INSERT 合体版


✅ 创建节点时

MERGE (n:WTG_Variable {name: line.node_id});

意思是:

  • 如果已经有 name = xxx 的节点 → 用它
  • 如果没有 → 新建一个

不会重复创建


✅ 创建关系时

MERGE (a)-[:INFLUENCES]->(b);

意思是:

  • 关系存在 → 用
  • 不存在 → 创建

❗什么时候用

导入数据
防止重复节点 / 重复关系
✔ 90% 的导入语句都用 MERGE


三、把你真实用的导入语句完整拆一遍(重点)


节点导入语句

LOAD CSV WITH HEADERS
FROM "file:///neo4j_wtg_nodes.csv" AS line
MERGE (n:WTG_Variable {name: line.node_id});

逐行解释:

  1. 从 CSV 读一行
  2. 这一行叫 line
  3. line.node_id 取变量名
  4. 如果这个变量节点存在 → 用
  5. 不存在 → 创建

关系导入语句

LOAD CSV WITH HEADERS
FROM "file:///neo4j_wtg_relationships.csv" AS line
MATCH (a:WTG_Variable {name: line.src})
MATCH (b:WTG_Variable {name: line.dst})
MERGE (a)-[:INFLUENCES]->(b);

核心逻辑是:

  1. 从 CSV 读一行关系
  2. 找源节点 a
  3. 找目标节点 b
  4. 建立关系(不重复)

四、给你一张“什么时候用谁”的速查表

关键字干啥的什么时候用
LOAD CSV读文件导入 CSV
FROM文件路径只跟 LOAD 用
MATCH找已有节点建关系前
MERGE找或建导入节点 / 关系
CREATE只创建不怕重复时

五、一句话帮你彻底记住(你这个层次非常适合)

LOAD 负责“读数据”,
MATCH 负责“找已有”,
MERGE 负责“别重复”,
FROM 只是“文件地址”。


http://www.jsqmd.com/news/392159/

相关文章:

  • LangChain入门(十五)- LangGraph为什么这么香,看它是如何逆天DIFY的深度解析:原理、实战与踩坑记录
  • 通过修改数据库来重置wp的密码
  • NOIWC 2026 游记
  • 2026年ESWA SCI1区TOP,面向密集建筑环境的城市物流配送无人机集群协同路径规划研究,深度解析+性能实测
  • python基于Python的降水量预警系统的设计与实现
  • 基于python的二手车数据分析及可视化系统
  • python毕业设计基于Django+爬虫的可视化考研推荐系统
  • 深入解析:GLM-4终极指南:从入门到生产部署
  • 基于python的3D打印技术专利分析系统
  • python基于用户网购行为的大数据分析
  • 基于python甘肃旅游网站研究与实现
  • 基于FLOW3D 的SLM 增材制造选区激光熔化数值模拟探索
  • 2026年咖啡师培训指南:服务优质机构怎么选?,便携式咖啡机售卖/意式咖啡机售卖,咖啡师培训怎么找哪家好 - 品牌推荐师
  • django基于大数据的京东手机数据分析系统设计与实现
  • 干货来了:千笔AI,当红之选的降AIGC网站
  • 基于python的购物平台多产品销售额数据分析研究
  • 一文讲透|10个AI论文网站测评:专科生毕业论文+开题报告写作全攻略
  • 导师推荐!碾压级的降AIGC工具 —— 千笔·降AIGC助手
  • 基于Django的智能水果销售系统
  • AI自动修剪果树,输入,树形图片,处理,识别枝条+剪口定位,输出,修剪点坐标。
  • 开题卡住了?8个AI论文平台深度测评,本科生毕业论文写作必备工具
  • 2025年市面上排行前列的酒店隔断定制推荐排行,单玻隔断/自由组合隔断/雾化玻璃隔断/电控玻璃隔断,酒店隔断定制找哪家 - 品牌推荐师
  • Wincc 7.5 SP2使用VBS脚本动态趋势弹窗功能的实现(续)-附上单位
  • 告别熬夜赶问卷!8款AI神器5分钟生成8000字论文 - 麟书学长
  • STR20直销厂家盘点:2026年值得关注的优质企业,优秀的STR20公司聚焦技术实力与行业适配性 - 品牌推荐师
  • 亲测好用! 降AI率网站 千笔·专业降AI率智能体 VS WPS AI 专科生首选
  • 照着用就行:自考必备的AI论文平台 —— 千笔写作工具
  • 我们提前成为了邻居——一位缦友的社群日记
  • 你的京东e卡还在抽屉吃灰?当心这笔隐形资源悄悄蒸发! - 京顺回收
  • 基于SpringAI的在线考试系统-考试管理机制布局+交互优化方案