微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

格雷姆林:找到指定顶点的所有下游出路径

如何解决格雷姆林:找到指定顶点的所有下游出路径

我有一个有向图,包含大约1000个顶点和3000个包含循环的边。

我正在尝试查找给定顶点的所有下游(出)路径。

使用以下Gremlin查询

g.V(45712).repeat(out().simplePath()).until(outE().count().is(0)).path()

对于某些路径,由于循环的原因,要花很多时间才能获得结果,尽管simplePath步骤应避免这种情况。

我尝试优化查询,并没有使用aggregate步骤和without两次遍历相同的顶点,但是现在跳过了某些顶点。

g.V(45712).repeat(out().where(without('x'))
.aggregate(Scope.local,'x'))
.until(outE().count().is(0))
.path()

谢谢

解决方法

如果您的数据是高度连接的,那可能是一个昂贵的查询。即使有一个小图。我已经看到人们使用约束来尝试限制搜索的总量。这些可能包括使用timesloops设置最大搜索深度。即使使用我的航线数据集(实际上是一个很小的图),该查询也可能会产生非常大的结果集。格雷姆林错是不是那么多。更多取决于顶点的连接方式。

通常,从给定起点搜索所有路径可能是昂贵的查询。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。