Gremlin DFS/BFS 搜索同时避免循环
Gremlin DFS/BFS Search while avoiding Loops
在 Gremlin 中,我试图在我的图中找到所有连接的节点 - 使用 BFS 或 DFS 我不担心遍历方法,因为我将有一个边列表,显示节点之间的连接输出类似于
[
Nodes : [ {id : 1, name: "abc"}, "{id: 2, name : "pqr"],
Edges : [ {id : 100, label : ParentOf, from : 1, to : 2 }, {id : 101, label : ChildOf, from : 2, to : 1 }]
]
我的图表看起来像这样
我的问题是循环 - 我试图只发出连接的节点,比如说我从节点 1 开始
g.V('a07771c3-8657-4535-8302-60bcdac5b753').repeat(out('knows')).until(__.not(outE('knows'))).path().
unfold().dedup().id().fold()
我遇到了错误
Gremlin Query Execution Error: Exceeded maximum number of loops on a repeat() step. Cannot exceed 32 loops. Recommend limiting the number of loops using times(n) step or with a loops() condition
我正在寻找一种查询可以跳过已经发出的节点的方法?不太确定该怎么做
simplePath
步骤可用于防止循环。
g.V('a07771c3-8657-4535-8302-60bcdac5b753').
repeat(out('knows').simplePath()).
until(__.not(outE('knows'))).path().
unfold().
dedup().
id().
fold()
在 Gremlin 中,我试图在我的图中找到所有连接的节点 - 使用 BFS 或 DFS 我不担心遍历方法,因为我将有一个边列表,显示节点之间的连接输出类似于
[
Nodes : [ {id : 1, name: "abc"}, "{id: 2, name : "pqr"],
Edges : [ {id : 100, label : ParentOf, from : 1, to : 2 }, {id : 101, label : ChildOf, from : 2, to : 1 }]
]
我的图表看起来像这样
我的问题是循环 - 我试图只发出连接的节点,比如说我从节点 1 开始
g.V('a07771c3-8657-4535-8302-60bcdac5b753').repeat(out('knows')).until(__.not(outE('knows'))).path().
unfold().dedup().id().fold()
我遇到了错误
Gremlin Query Execution Error: Exceeded maximum number of loops on a repeat() step. Cannot exceed 32 loops. Recommend limiting the number of loops using times(n) step or with a loops() condition
我正在寻找一种查询可以跳过已经发出的节点的方法?不太确定该怎么做
simplePath
步骤可用于防止循环。
g.V('a07771c3-8657-4535-8302-60bcdac5b753').
repeat(out('knows').simplePath()).
until(__.not(outE('knows'))).path().
unfold().
dedup().
id().
fold()