Gremlin入门

一、Gremlin简介

Gremlin是Apache ThinkerPop框架下的图遍历语言,Gremlin是一种函数式数据流语言,可以使用户使用简洁的方式表述复杂的属性图的遍历或查询。每个Gremlin遍历由一系列步骤(可能存在嵌套)组成,每一步都在数据流(data stream)上执行一个原子操作。

Gremlin 语言包括三个基本的操作:

  • map-step:对数据流中的对象进行转换;

  • filter-step:对数据流中的对象就行过滤;

  • sideEffect-step:对数据流进行计算统计;

Tinkerpop3 模型核心概念

  • Graph: 维护节点&边的集合,提供访问底层数据库功能,如事务功能

  • Element: 维护属性集合,和一个字符串label,表明这个element种类

  • Vertex: 继承自Element,维护了一组入度,出度的边集合

  • Edge: 继承自Element,维护一组入度,出度vertex节点集合.

  • Property: kv键值对

  • VertexProperty: 节点的属性,有一组健值对kv,还有额外的properties 集合。同时也继承自element,必须有自己的id, label.

  • Cardinality: 「single, list, set」 节点属性对应的value是单值,还是列表,或者set。

二、Gremlin查询示例

先介绍一下图中比较核心的几个概念:

  • Schema:Schema是一种描述语言,这里就是指所有属性和类型的集合,包括边和点的属性,边和点的Label等;

  • 属性类型(PropertyKey ):只边和点可以使用的属性类型;

  • 顶点类型(VertexLabel):顶点的类型,比如User,Car等;

  • 边类型(EdgeLabel):边的类型,比如know,use等;

  • 顶点(Vertex):就是图中的顶点,代表图中的一个节点;

  • 边(Edge):就是图中的边,连接两个节点,分为有向边和无向边;

创建属性类型

创建顶点类型

创建边类型

创建顶点和边

展示图

查询点

查询边

查询属性

删除点

删除边

查询二度好友和共同好友数

此外,还有查询,遍历,过滤,路径,迭代,转换,排序,逻辑,统计,分支等语法,可以参考:http://tang.love/2018/11/15/gremlin_traversal_language/。

参考:

http://tang.love/2018/11/15/gremlin_traversal_language/

https://hugegraph.github.io/hugegraph-doc/quickstart/hugegraph-studio.html

Last updated

Was this helpful?