Gremlin 嵌套循环和双重重复语句

Gremlin nested loops and double repeat statements

gremlin 如何解释此处针对最低公共祖先算法描述的双重重复? http://tinkerpop.apache.org/docs/3.2.3-SNAPSHOT/recipes/#_lowest_common_ancestor

这似乎被解释为另一个循环 O(n^2) 中的嵌套循环,而不是两个独立的循环。我想验证这种行为。能不能在这里详细解释一下语义。

如果这是行为,有没有办法在内部循环的条件下中断外部循环?

这不是嵌套的 repeat()(即一个 repeat() 嵌套在另一个中)- 第一个 repeat() 在第一个 emit() 结束,然后是一个新的 repeat() 】 开始。这就是说遍历将首先遍历 out() 发射它遇到的每个顶点,并且每个顶点将遍历 in() 只发射 "D" 顶点。

嵌套循环在 3.2.3 中不受支持,实际上只有在即将发布的 3.4.0 中才有可能,您可以阅读有关 here 的内容,如下所示:

gremlin> g.V().repeat(__.in('traverses').repeat(__.in('develops')).emit()).emit().values('name')
==>stephen
==>matthias
==>marko

在这里你可以看到 repeat() 实际上在 repeat()

里面