4.HugeGraph查询语言
HugeGraph 支持Apache TinkerPop 3的图形遍历查询语言Gremlin。
HugeGraph 查询语言
HugeGraph 支持Apache TinkerPop 3的图形遍历查询语言Gremlin。 SQL 是关系型数据库查询语言,而 Gremlin 是一种通用的图数据库查询语言,Gremlin 可用于创建图的实体(Vertex 和 Edge)、修改实体内部属性、删除实体,也可执行图的查询操作。
建议通过 Gremlin 执行图的查询和遍历,而关于图的增加、修改和删除等更新操作则通过 HugeGraph 的 Graph Api 接口进行。因为 Graph Api 对增加、修改和删除操作做了很多优化,执行效率比 Gremlin 更加高效。
HugeGraph 支持 Gremlin 的所有步骤。有关 Gremlin 的完整参考信息,请参与Gremlin 官网。
| 步骤 | 说明 | 文档 |
|---|---|---|
| addE | 在两个顶点之间添加边 | addE step |
| addV | 将顶点添加到图形 | addV step |
| and | 确保所有遍历都返回值 | and step |
| as | 用于向步骤的输出分配变量的步骤调制器 | as step |
| by | 与group和order配合使用的步骤调制器 | by step |
| coalesce | 返回第一个返回结果的遍历 | coalesce step |
| constant | 返回常量值。 与coalesce配合使用 | constant step |
| count | 从遍历返回计数 | count step |
| dedup | 返回已删除重复内容的值 | dedup step |
| drop | 丢弃值(顶点/边缘) | drop step |
| fold | 充当用于计算结果聚合值的屏障 | fold step |
| group | 根据指定的标签将值分组 | group step |
| has | 用于筛选属性、顶点和边缘。 支持hasLabel、hasId、hasNot 和 has 变体 | has step |
| inject | 将值注入流中 | inject step |
| is | 用于通过布尔表达式执行筛选器 | is step |
| limit | 用于限制遍历中的项数 | limit step |
| local | 本地包装遍历的某个部分,类似于子查询 | local step |
| not | 用于生成筛选器的求反结果 | not step |
| optional | 如果生成了某个结果,则返回指定遍历的结果,否则返回调用元素 | optional step |
| or | 确保至少有一个遍历会返回值 | or step |
| order | 按指定的排序顺序返回结果 | order step |
| path | 返回遍历的完整路径 | path step |
| project | 将属性投影为映射 | project step |
| properties | 返回指定标签的属性 | properties step |
| range | 根据指定的值范围进行筛选 | range step |
| repeat | 将步骤重复指定的次数。 用于循环 | repeat step |
| sample | 用于对遍历返回的结果采样 | sample step |
| select | 用于投影遍历返回的结果 | select step |
| store | 用于遍历返回的非阻塞聚合 | store step |
| tree | 将顶点中的路径聚合到树中 | tree step |
| unfold | 将迭代器作为步骤展开 | unfold step |
| union | 合并多个遍历返回的结果 | union step |
| V | 包括顶点与边之间的遍历所需的步骤:V、E、out、in、both、outE、inE、bothE、outV、inV、bothV 和 otherV | order step |
| where | 用于筛选遍历返回的结果。 支持 eq、neq、lt、lte、gt、gte 和 between 运算符 | where step |
