如何使用 Tinkerpop 3 找到顶点之间的最短路径,但搜索深度有限制?
How to find the shortest path between Vertices, but have a limit to search depth, using Tinkerpop 3?
我试图在 Tinkerpop 3 中找到两个顶点(fromNode 和 toNode)之间的最短路径,但我需要在某个深度 N 后停止搜索。如果没有这个限制,我将永远无法完成该图太大。
到目前为止这是我能想到的最好的:
titanGraph.traversal().V(fromNode)
.repeat(out().simplePath())
.times(N)
.emit(hasId(toNode)).path();
这个问题,以及我尝试过的所有其他方法,是长度为 N 的路径被 returned 作为结果,即使它们没有到达节点。
我需要 return fromNode 和 toNode 之间长度为 N 或以下的所有路径。
你走对了路
titanGraph.traversal().V(fromNode)
.repeat(out().simplePath())
.times(N)
.emit(hasId(toNode)).hasId(toNode).path();
我试图在 Tinkerpop 3 中找到两个顶点(fromNode 和 toNode)之间的最短路径,但我需要在某个深度 N 后停止搜索。如果没有这个限制,我将永远无法完成该图太大。
到目前为止这是我能想到的最好的:
titanGraph.traversal().V(fromNode)
.repeat(out().simplePath())
.times(N)
.emit(hasId(toNode)).path();
这个问题,以及我尝试过的所有其他方法,是长度为 N 的路径被 returned 作为结果,即使它们没有到达节点。
我需要 return fromNode 和 toNode 之间长度为 N 或以下的所有路径。
你走对了路
titanGraph.traversal().V(fromNode)
.repeat(out().simplePath())
.times(N)
.emit(hasId(toNode)).hasId(toNode).path();