功能概览

定义

  • 实体:查询顶点/边的操作

  • map:按照某种规则将输入objects映射成另一个objects

  • filter:按照某种规则对输入objects执行过滤

  • sideEffect:按照某种规则为输入objects添加一些信息,输出依然为这个objects

  • branch:对输入objects执行分支计算

  • 修饰符:修饰单步,一般用于为单步提供参数

  • 函数:一般用于为单步提供函数,如为过滤单步提供比较函数

  • 策略:用户可选的定制化策略

功能概览

备注:[*]标注的为iGraph自研扩展的单步,其他均为Apache Gremlin开源的单步

类型

step名称

功能

实体

E

查询边的信息

inV

从一条边跳转到关联的顶点

out

从一个顶点跳转到关联的顶点

outE

从一个顶点跳转到关联的边

V

查询顶点的信息

map

barrier

阻塞

bulk

返回实体的bulk值

cap

返回sideEffect的存储值

constant

返回用户自定义的“值”

count

计算数量

fold

将输入objects聚合成list<object>

group

分组

groupCount

分组并计算组内的数量

identity

返回输入自身

label

返回表名或者图label

loops

返回当前循环的次数

math

科学计算

max

计算最大值

mean

计算平均值

min

计算最小值

order

排序

path

返回遍历的路径

project

将输入objects映射成map<string,object>

properties

返回字段名和字段值

propertyMap

返回字段名和字段值的map

sack

返回实体的sack值

select

返回标签值

sum

计算和

unfold

将list<object>展开为objects

values

返回字段值

filter

and

返回“所有子遍历都产生结果”的输入

cap

返回有环的路径

dedup

去重

distinct [*]

打散

has

过滤实体

hasKey

过滤字段名

hasLabel

过滤标签

hasValue

过滤字段值

is

过滤数值或string

limit

截断,保留最前的结果

not

返回“子遍历不能产生结果”的输入

or

返回“至少在一个子遍历能产生结果”的输入

range

截断

sample

采样

simplePath

返回无环的路径

tail

截断,保留最后的结果

where

过滤

sideEffect

aggregate

将输入objects阻塞地拷贝一份list<object>

alias [*]

为输入实体(点或边)定义虚拟字段

fields [*]

裁剪字段

store

将输入objects非阻塞地拷贝一份list<object>

branch

branch

分支查询

choose

分支查询

coalesce

返回首个至少能计算出一个元素的输入的计算值

local

对每个输入单独执行子遍历

optional

如果子遍历能产生结果,则返回遍历结果;否则,返回输入

repeat

循环遍历

unoin

合并子遍历的结果

修饰符

as

打标

by

为其他单步提供参数

emit

记录循环的中间结果

indexQuery [*]

倒排查询

option

指定分支查询的条件

times

指定循环遍历的次数

until

指定循环遍历的终止条件

withSack

为实体的sack值定义初始值、分裂规则和合并规则

函数

P

描述比较逻辑

T

提取输入元素的信息

UDF [*]

支持用户自定义比较函数

策略

withStrategies

为遍历添加定制化策略

PathRecordStrategy

定制路径记录的信息类型

PushDownStrategy

指定获取sideEffect的单步下推至存储层执行