图检索模式:多跳遍历、子图检索与 Text-to-Cypher

05-GraphRAG与图增强检索 核心 约 20 分钟 #图检索#多跳#子图#Text-to-Cypher 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照经典文献复核。

一句话定义

图检索把"问题 → 图上可执行的操作"分为三类:入口定位(问题实体锚到节点)、结构展开(多跳遍历/模式匹配取子图)、结果转述(子图序列化进上下文);Text-to-Cypher 让 LLM 生成查询,实体链接与 schema 约束决定它的可靠性。

为什么重要

向量检索的输出是"块列表",图检索的输出是"结构化的子图/路径"——如何把问题翻译成图操作、再把图操作结果翻译回语言,是 GraphRAG 落地的两个翻译层。掌握这三类模式,才能设计出"哪些问题走图、怎么走、结果怎么喂"的完整路径。

前置知识

kp-020(Cypher)、kp-022(多跳盲区)、kp-011(查询变换)。

核心概念

  • 实体链接(entity linking):把问题中的提及("华为")锚定到图节点——检索前置步骤,链接错了全盘皆错。常用方案:别名表精确匹配 + 向量检索节点名称/描述兜底。
  • 模式一:多跳遍历(traversal):从锚点节点按关系边走 n 跳取邻域/路径("A 的供应商的母公司"),确定性最强。
  • 模式二:子图/模式匹配(pattern match):按问题语义生成 Cypher pattern(带类型与属性过滤),返回满足结构的子图;适合"条件组合"类问题(向 H 供货且母公司在德国的供应商)。
  • 模式三:Text-to-Cypher:LLM 把自然语言问题翻译成 Cypher——few-shot schema 提示 + 语法校验 + 出错重试/回退;是图检索的自动化入口。
  • 结果序列化:子图→文本("华为 -[供应]-> 海思;海思 -[母公司]-> 华为投资"或表格化),要控制长度、保留关系方向与属性。

原理与机制

Text-to-Cypher 的可靠性工程:裸 LLM 生成 Cypher 的失败模式是——幻觉关系名(schema 里没有)、属性名拼错、跳数无界拖垮库。对策链:① schema 词汇表进 prompt(只允许白名单类型与关系);② 生成后语法校验 + EXPLAIN 预检(限制遍历上限);③ 执行失败把错误信息回喂重试(自修复循环);④ 连续失败回退到"实体邻域泛化检索"(锚点 + 1–2 跳全量邻域,宁可多给不空手)。

子图如何进上下文:序列化格式三选一——线性三元组列表(省 token、丢结构感)、缩进树/表格(结构清晰、token 略多)、自然语言化(LLM 把子图转述成段落,最顺滑但引入转述错误)。工程上常按子图大小路由:小图线性列表、大图先摘要。

与向量路的协作:图检索的起点(实体链接)常用向量检索;图检索的结果(子图涉及的原文块)再与向量召回合并进上下文(kp-014)——两条路在入口与出口各握一手,中间各走各的强项(kp-026 的融合架构)。

图示

问题: "A 公司供应商里哪些有 ISO 认证?"
① 实体链接: "A 公司" → (:Company {name:'A'})
② Text-to-Cypher:
   MATCH (a:Company {name:'A'})<-[:SUPPLIES_TO]-(s)-[:HAS_CERT]->(c {type:'ISO'})
   RETURN s.name, c.type
③ 执行 + 校验(失败→回喂错误重试→仍败则邻域兜底)
④ 序列化: "供应商B(ISO9001)、供应商C(ISO27001)" → 进上下文

实例或案例

  • 供应链问答:实体链接命中率 95%+(别名表完备)时,Text-to-Cypher 直查准确率远高于向量多跳拼接;链接失败自动回退向量路。
  • 风控自然语言查图:"与 X 共用设备的账号"→ 两跳 pattern,秒级返回子图。

常见误区

  • 误区一:"Text-to-Cypher 可以端到端全托管"。没有 schema 约束与执行校验的裸生成在生产不可用;三件套(白名单+校验+回退)是底线。
  • 误区二:"子图越大信息越全越好"。大子图挤爆上下文并稀释注意力(kp-014);按跳数与节点数上限裁剪,优先保留与问题实体直接相关的边。
  • 误区三:"实体链接小事一桩"。别名缺失时问题锚不到节点,整条图路静默失效;别名表的维护要作为常规运营任务。

与其他知识点的关系

  • kp-011:实体链接与查询改写同属"查询理解"。
  • kp-014:序列化子图在上下文中的布局。
  • kp-026:图路作为混合架构的一条路由。
  • kp-023:别名表与对齐质量决定链接命中率。

自测题

  1. Text-to-Cypher 的三道保险是什么?

答:schema 白名单进提示词(防幻觉词汇)、生成后语法与执行预检(防拖库)、失败回喂重试 + 邻域泛化兜底(防空手)。

  1. 子图序列化有哪些格式与取舍?

答:线性三元组(省 token)、缩进树/表格(结构清晰)、LLM 自然语言转述(顺滑但可能失真);按子图规模与风险偏好选。

  1. 图路与向量路在哪两个位置协作?

答:入口(实体链接用向量检索兜底)与出口(图结果涉及的原文块与向量召回合并进上下文)。

延伸阅读

  • Neo4j 文档:genai — Text2Cypher 与 vector index 集成。
  • Gu 等, "Don't Generate, Discriminate"(Text-to-SQL 的判别式修正思想,同理适用 Cypher)。
  • Han 等 GraphRAG 综述(2024)§ 检索策略分类。