我试图遍历图表以跟踪特定节点的沿袭。我想我的查询以广度优先模式产生该节点的前提。注意,每个节点可以有多个父节点。图表可以有很多层,我希望看到给定节点的所有级别的结果。我试图遵循this食谱,但遇到异常没有这样的属性:聚集。我在gremlin控制台版本3.3
上尝试这个答案 0 :(得分:3)
使用barrier()
步骤(Apache TinkerPop 3.3 docs)。例如:
gremlin> g.V().sideEffect{println "first: ${it}"}.barrier().sideEffect{println "second: ${it}"}.iterate()
first: v[1]
first: v[2]
first: v[3]
first: v[4]
first: v[5]
first: v[6]
second: v[1]
second: v[2]
second: v[3]
second: v[4]
second: v[5]
second: v[6]
Stephen在这个gremlin-users post中给出了对BFS的另一个很好的描述。
首先,让我们假设没有优化的Gremlin语言 - 做:
g.V().out().out()
将导致深度优先搜索。您可以使用barrier()强制BFS:
g.V().out().barrier().out()
在进入下一步之前,它基本上会强制排水前的步骤。