Hegegraph的Gremlin语言(全)
内容
• 基本概念
• Step讲解
• HugeGraph特有Gremlin语句(schema相关)
基本概念
• Gremlin
• 是一门图的查询语言,地位作用与数据库的 SQL相当
• 支持图数据的增、删、改、查
• 图的查询比关系数据库查询要复杂的多
• 一些复杂的查询,只能通过离线计算来进行其他的图查询语言还包括: SparQL, Cypher等
• TinkPop
• Apache开源项目,是一个Gremlin的实现框架及基础实现
• 可以实现图数据的定义、增删、及一些通用的查询功能
• 允许其他的 provider 对这个框架进行扩展Hugegraph 利用 tinkerpop 支持 gremlin,并在一些地方进行了扩展和优化
Gremlin中的核心概念
查询的开始
遍历
Has条件过滤
图查询返回结果数限制
查询路径
循环操作
-
repeat(): 指定要重复执行的语句,如repeat(out('friend’))
-
times(): 指定要重复执行的次数,如执行3次repeat(out(‘friend’)).times(3)
-
until(): 指定循环终止的条件,如一直找到某个名字的朋友为止
-
repeat(out(‘friend’)).until(has(‘name’,'xiaofang’))
-
emit(): 指定循环语句的执行过程中收集数据的条件,每一步的结果只要符合条件则被收集,不指定条件时收集所有结果
-
loops(): 当前循环的次数,可用于控制最大循环次数等,如最多执行3次repeat(out(‘friend’)).until(loops().is(3))
查询结果排序
数据分组与去重
条件和过滤
逻辑运算
统计运算
数学运算
路径选取与过滤
分支
合并
结果聚集和展开
模式匹配
随机过滤与注入
结果存取口袋
遍历栅栏
局部操作
执行统计和分析