第2章 Cypher 查询漫游:从 MATCH 到执行计划 章节摘要:Cypher 是与 Neo4j 对话的语言,而对话的核心动作是"漫游":MATCH 锚定起点,模式匹配画出要走的形状,WHERE 边走边筛,WITH 把中间成果传给下一段旅程,最后 RETURN 收拢答案。本章沿这条主线把 Cypher 的读侧能力一次讲透——从单节点匹配到子图、从固定模式到变长路径,再深入 PROFILE 执行计划与索引,弄明白一条查询在引擎里到底怎么跑。读完本章,你会拿到全册使用频率最高的一组技能。 学习目标 读完本章,你应当能够: 用"实体清单 + 关系动词表"的方法,把业务需求翻译成属性图建模方案; 独立写出从 MATCH 到 RETURN 的查询,正确使用节点模式、关系方向与多重标签;
章节摘要:Cypher 是与 Neo4j 对话的语言,而对话的核心动作是"漫游":MATCH 锚定起点,模式匹配画出要走的形状,WHERE 边走边筛,WITH 把中间成果传给下一段旅程,最后 RETURN 收拢答案。本章沿这条主线把 Cypher 的读侧能力一次讲透——从单节点匹配到子图、从固定模式到变长路径,再深入 PROFILE 执行计划与索引,弄明白一条查询在引擎里到底怎么跑。读完本章,你会拿到全册使用频率最高的一组技能。
读完本章,你应当能够:
本章四节各自贡献一段旅程,串起来就是一条完整的查询流水线:先有图(建模),再走图(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 章的环境与 Movie 示例图;属性图四件积木的概念;不用任何 Cypher 基础——本章从零讲起。
后续:本章只讲"读",图的生长(CREATE、MERGE、约束)在第 3 章;2.4 的执行计划知识在第 5 章存储引擎一节会得到更底层的解释;第 7 章的场景实战把本章的查询技巧放进推荐、风控等真实业务里反复演练。