gremlin
一、概述
一个图遍历和图计算的查询语言,可以适配任何图数据库,只有开放制定gremlin-plugin。
二、Traversal
即迭代器,图数据的一个遍历,
如以下语句, g.traversal().V()
其中g代表图书库,traversal即为开始一个迭代,V是一个step,一个step代表一个迭代的操作,也就是说traversal可以理解为开启for循环,step即为for循环里的操作
一个step包含若干个Traverser,一个Traverser维护一组结果,如路径查找时,路径的中间结果就是通过Traverser来保存的。
step有很多中,仅当遇到终结式step的时候才会触发计算,常用的终结step有:next,get,list(如果没有执行终结step,普通的step也可以被序列化,故在gremlin终端执行g.V()也有数据返回)
三、会触发计算的step
当前遍历 S 对象(开始) — Traverser.get()
当前遍历器遍历过的路径 — Traverser.path()
辅助理解:获取指定历史路径 — Traverser.path(String) == Traverser.path().get(String)
获取遍历器当前循环的次数 — Traverser.loops()
遍历器中维护的对象的个数 — Traverser.bulk()
遍历器相关联的局部数据结构 — Traverser.sack()
遍历器相关联的side-effects — Traverser.sideEffects()