目录
二、Vertex Step (Vertex centric)
首先我们假定读者对Gremlin语句有一定的了解,那么Traversal就是对gremlin语句用java语法中的方法进行拼接。看一下JanusGraph官方文档中对traversal的使用:
JanusGraph graph = JanusGraphFactory.open('conf/janusgraph-cql.properties')
GraphTraversalSource g = graph.traversal()
saturn = g.V().has('name', 'saturn').next()
一、Terminal Step
traversal方法首先返回一个GraphTraversalSource类型,这个类型可以执行图相关的搜索,也就是根据条件从全图进行搜索,然后返回traversal,在后续若干个traversal后,最终结果在next方法后返回。这个方法被称为ternimal step,与他作用相同的一共有9个,他们的作用是终止traversal的添加过程,转而对前面设置的条件开始图查询。
g.V().out('created').hasNext()
g.V().out('created').next()
g.V().out('created').next(2)
g.V().out('nothing').tryNext()
g.V().out('created').toList()
g.V().out('created').toSet()
g.V().out('created').toBulkSet()
results = ['blah',3]
g.V().out('created').fill(results)
g.addV('person').iterate()
本节中,我们重点关注GraphTraversalSource类在全局搜索时的工作方式。
二、Vertex Step (Vertex centric)
(1) 从一个简单的api查询开始
// Traversal.toList
g.V().toList()
// Traversal.fill()
final Traverser<E> traverser = endStep.next();
TraversalHelper.addToCollection(collection, traverser.get(), traverser.bulk());
// AbstractStep.next();
final Traverser.Admin<E> traverser = this.proce