[英]Gremlin: Find all downstream (out) paths from given Vertex
我有一个包含循环的大约 1000 个顶点和 3000 个边的有向图。
我试图从给定的顶点找到所有下游(出)路径。
使用以下 Gremlin 查询时
g.V(45712).repeat(out().simplePath()).until(outE().count().is(0)).path()
对于某些路径,由于循环,需要永远获得结果,尽管simplePath
步骤应该防止这种情况。
我试图优化查询,而不是使用aggregate
步骤和without
使用aggregate
步骤两次遍历同一个顶点,但现在一些顶点被跳过。
g.V(45712).repeat(out().where(without('x'))
.aggregate(Scope.local,'x'))
.until(outE().count().is(0))
.path()
谢谢
如果您的数据高度连接,那可能是一个昂贵的查询。 即使有一个小图形。 我见过人们使用约束来尝试限制搜索的总量。 这些可能包括使用times
或loops
来设置最大搜索深度。 即使使用我的航线数据集(实际上是一个很小的图),该查询也可能产生非常大的结果集。 并不是说你的 Gremlin 错了。 它更多地取决于顶点的连接方式。
从给定的开始搜索所有路径通常可能是昂贵的查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.