文章介绍PostgreSQL的SQL/PGQ图查询扩展:可在现有表上定义属性图,并用类Cypher模式查询;重写器将图模式转换为普通JOIN和UNION,复用索引、统计与并行查询,无需新执行器。已提交实现仅支持100项标准特性中的26项,缺少量词、路径模式和变长边等关键功能。该功能因目录表示和依赖问题从PostgreSQL 19撤回,预计在20回归;变长边是未来重点。
Postgres 19的SQL/PGQ图查询在固定深度时与手写JOIN性能相同,因其本质是重写为JOIN。但可变深度查询(如爆炸半径)不受支持,需用递归CTE,性能随可达节点数线性增长。Apache AGE支持Cypher可变长度遍历,但比递归CTE慢约2倍。所有实现均基于索引遍历,非原生图引擎的索引无关邻接。
本文介绍了如何使用子查询在图查询中进行局部遍历,以及如何将子查询作为查询条件和中间结果,并调用 GES 的 Cypher API。同时,还提供了潜在二度人脉分析和兴趣推荐等场景的示例。使用子查询可以满足某些业务场景下对查询的局部有限制的需求,并且可以节省中间结果产生,加速 Cypher 查询的执行。
完成下面两步后,将自动完成登录并继续当前操作。