第2章 Cypher 查询漫游:从 MATCH 到执行计划


文档摘要

第2章 Cypher 查询漫游:从 MATCH 到执行计划 章节摘要:Cypher 是与 Neo4j 对话的语言,而对话的核心动作是"漫游":MATCH 锚定起点,模式匹配画出要走的形状,WHERE 边走边筛,WITH 把中间成果传给下一段旅程,最后 RETURN 收拢答案。本章沿这条主线把 Cypher 的读侧能力一次讲透——从单节点匹配到子图、从固定模式到变长路径,再深入 PROFILE 执行计划与索引,弄明白一条查询在引擎里到底怎么跑。读完本章,你会拿到全册使用频率最高的一组技能。 学习目标 读完本章,你应当能够: 用"实体清单 + 关系动词表"的方法,把业务需求翻译成属性图建模方案; 独立写出从 MATCH 到 RETURN 的查询,正确使用节点模式、关系方向与多重标签;

第2章 Cypher 查询漫游:从 MATCH 到执行计划

章节摘要:Cypher 是与 Neo4j 对话的语言,而对话的核心动作是"漫游":MATCH 锚定起点,模式匹配画出要走的形状,WHERE 边走边筛,WITH 把中间成果传给下一段旅程,最后 RETURN 收拢答案。本章沿这条主线把 Cypher 的读侧能力一次讲透——从单节点匹配到子图、从固定模式到变长路径,再深入 PROFILE 执行计划与索引,弄明白一条查询在引擎里到底怎么跑。读完本章,你会拿到全册使用频率最高的一组技能。

学习目标

读完本章,你应当能够:

  1. 用"实体清单 + 关系动词表"的方法,把业务需求翻译成属性图建模方案;
  2. 独立写出从 MATCH 到 RETURN 的查询,正确使用节点模式、关系方向与多重标签;
  3. 用变长路径表达"任意深度"的关联问题,并清楚它的性能边界;
  4. 组合 WHERE、WITH、ORDER BY、LIMIT 完成多阶段查询;
  5. 读懂 PROFILE 输出的 db hits 与行数,定位"慢在哪一段";
  6. 为高频锚点属性建索引,并用执行计划验证索引生效。

核心概念速览

本章四节各自贡献一段旅程,串起来就是一条完整的查询流水线:先有图(建模),再走图(MATCH 与路径),走的时候筛选汇总(WHERE 与 WITH),最后看引擎怎么走的(执行计划与索引)。

一句话概括本章:查询写的是形状,引擎跑的是指针,调优调的是命中。

子章节导航

2.1 为漫游建模:属性图设计——漫游前先有地图。讲建模三步法:列实体、定关系、挑属性;用电商"用户-订单-商品"案例完整走一遍,并讨论"关系上挂属性"这个图模型独有的建模武器。

2.2 MATCH 起步:从节点到子图——漫游的起点。单节点匹配、带属性匹配、关系方向与类型、多重标签;然后引入 WHERE 与 RETURN 的组合拳,完成从"锚定"到"取回"的最小闭环。

2.3 关系穿越与变长路径——漫游的纵深。变长路径 *1..3 的语义与代价、OPTIONAL MATCH 的左连接语义、WITH 的管道传递与聚合分组,解决"深度不固定"的开放问题。

2.4 索引与执行计划——漫游的引擎室。PROFILE 逐算子解读 db hits,NodeIndexSeek 与 NodeByLabelScan 的天壤之别,范围查询与全文索引的适用场景,以及"索引不生效"的常见原因。

子章节之间的逻辑关系

四节构成"建模 → 基础遍历 → 深度遍历 → 引擎调优"的递进,同时 2.4 对前三节形成反馈回路:执行计划看不懂的地方,往往要回头改建模或改写查询形状。

2.1 建模 ──► 2.2 MATCH 基础 ──► 2.3 变长路径 ▲ │ │ 查询形状反馈 │ └──── 2.4 执行计划 ◄──┘ │ ▼ 第3章 写入与运维(图开始生长)

本章练习与自测

带着 Movie 沙盘完成三个练习,本章就吃透了:

  1. 写一条查询:找出参演过两部电影以上、且 1970 年后出生的演员;
  2. 把 2.3 的"二度人脉推荐"改成三度,观察上界放开后的 PROFILE 变化;
  3. 给 Person 的 born 属性建索引,用 PROFILE 对比前后 db hits。

前置知识与后续延伸

前置:第 1 章的环境与 Movie 示例图;属性图四件积木的概念;不用任何 Cypher 基础——本章从零讲起。

后续:本章只讲"读",图的生长(CREATE、MERGE、约束)在第 3 章;2.4 的执行计划知识在第 5 章存储引擎一节会得到更底层的解释;第 7 章的场景实战把本章的查询技巧放进推荐、风控等真实业务里反复演练。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U