在没有 Gremlin 控制台的情况下,在 Groovy 中打印出 Gremlin 3.1.1 结果

Print out Gremlin 3.1.1 Results in Groovy Without Gremlin Console

我正在尝试打印出 Gremlin 遍历的结果。这类似于这个问题,但与这个问题不同:

How to print out Gremlin pipe / traversal results

我正在尝试在没有 Gremlin 控制台的情况下执行此操作。下面是一个代码示例,但是 sideEffect()

没有产生任何结果
@Grab('org.apache.tinkerpop:tinkergraph-gremlin:3.1.1-incubating')
@Grab('org.apache.tinkerpop:gremlin-core:3.1.1-incubating')

import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;

Graph graph = TinkerFactory.createModern();
def g = graph.traversal();
println(g.V(1).out('name').toString());
g.V(1).out('name').sideEffect{println it.name}.iterate();

这是您正在使用的现代图表的图片

可以看到顶点1是Marko节点,它有3条出边:

vertex1 --created--> vertex3
vertex1 --knows--> vertex2
vertex1 --knows--> vertex4

在 Gremlin 中,这些可以像使用 vertex steps:

一样表达
g.V(1).out('created').next()
g.V(1).outE('knows').inV().toList()

根据您的代码,您可能希望在相邻顶点上获得 vertex property name。在这种情况下,省略边标签,并获取顶点 属性 值:

g.V(1).out().values('name').sideEffect{println it}.iterate()

仅供参考,您引用的 link 显示的是 TinkerPop2 代码。你应该参考TinkerPop 3.1.1-incubating documentation.