在格里姆林中搜索路径,直至给定距离



我想找到 2 个顶点之间的路径,直到找到路径或距离超过给定值(例如 10(。

例如,假设一个图形(A)->(B)<-(C)<-(D)<-(E)->(F)<-(G)<-(H)->(I)。最大距离为4。因此,如果我搜索路径(A-E),我会得到ABCDE,但如果我搜索(B-G),我会得到"too far away"

我目前使用它来查找 2 个顶点之间的路径:g.V(nodeID1).repeat(__.both().simplePath()).until(__.hasId(nodeID2)).path().limit(limit).toList()

顺便说一下,我正在使用gremlin_python

我发现了这个问题(在JanusGraph上使用Gremlin限制最短路径查询的深度(,这对我有帮助。但还没有回答。

您只需要在until()中添加另一个中断条件:

g.V(nodeID1).
repeat(__.both().simplePath()).
until(__.hasId(nodeID2).or().loops().is(eq(4))).
hasId(nodeID2).limit(limit).path().toList()

如果列表为空,则在给定距离内未找到路径。


蟒蛇编辑:
g.V(nodeID1).
repeat(__.both().simplePath()).
until(__.hasId(nodeID2).or_().loops().is_(P.eq(4))).
hasId(nodeID2).limit(limit).path().toList()

相关内容

  • 没有找到相关文章

最新更新