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()
里面
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()