结构化的 UQL 语句输送给 Ultipa Server 后会进行自动解析、优化,再分配给高性能图计算引擎进行图查询,查询后的结果在执行完其余的处理、组装后最终返回给用户。
本节会从整体介绍 UQL 的查询、别名、返回机制,目的在于给使用者一个大体的认识。如果在阅读过程中存在疑惑,请继续向下阅读,在后面的章节中,会对每一部分做详细介绍。
观察下面这个 UQL 示例:
find().nodes() as target
return target.name, target.age limit 10
其中:
- find().nodes() 发起点查询的操作
- as target 定义别名,将上一句的查询结果用别名 target 来表达
- return target.name, target.age 组装两个返回值,一并返回给用户
- limit 10 设置返回的数据量的上限,最多返回 10 条数据
绿色部分 find().nodes() 是形式为[命令]
.[参数]
.[参数]
... 的 查询语句,一个复杂的 UQL 语句中可以包含多个查询语句。本章后面将依次介绍各种查询命令及其参数的概念和用法。
黄色部分 return、limit 是子句关键词,子句可以对前面语句传来的结果进行各种运算及处理,关于子句关键词的详细介绍请阅读《数据流、子句》。
红色部分 as 是别名关键词,用来给当前的结果定义别名,使这些结果能在后续的语句中被使用;别名是 UQL 语句各部分协同工作的纽带。
以上就是一个 UQL 查询语句的三个重要组成部分:链式查询(绿色)、子句(黄色)、别名(黑色)。