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?