Gremlin:在不应用限制的情况下为所有连接的节点查找叶节点

问题描述

this question的扩展名

我有一组相互紧密连接的节点(集群),我正在寻找一个结果集,该结果集成对组合,其中包含群集中的每个节点和在任何级别链接的所有节点(没有任何向外边缘)。

尽管上面链接中提供的解决方案产生了所需的结果集,但我必须提供一个预设的极限值,没有该极限值,查询将永远运行。我正在尝试寻找是否有一种可以在不提供预设限制的情况下使用的替代方法

样本数据:https://github.com/zulfi123786/zulfi_pub/blob/main/gremlin_sample.sh

为帮助可视化图形:

  • 范围A-X中的每个节点连接到更高的其他节点 按字典顺序排列,具有单个方向的边缘。例如:A-> B, A-> C ... A-> X; B-> C,B-> D ... B-> X; C-> D,C-> E ... C-> X
  • 节点X通过单向边缘连接到Y,Z,A1,A2 ... A20
  • 节点Y,Z,A1 ... A20是没有向外边缘的叶节点

查询:仅限于一个节点“ A”,其限制为100。通过删除该限制,看起来所有路径都在评估中,并猜测是否有一种方法可以跳过为所选的每种组合寻找任何其他路径的方法Node及其叶节点ex-在A和A1之间将有太多路径,一旦找到任何路径就不再寻找其他路径,而跳到查找其他叶节点

gremlin> g.V('A').local(repeat(out().simplePath()).until(__.not_(out())).path().by(id).limit(100)).local(unfold().union(limit(1),tail()).fold()).dedup().toList()
==>[A,A1]
==>[A,A2]
==>[A,A3]
==>[A,A4]
==>[A,A5]
==>[A,A6]
==>[A,A7]
==>[A,A8]
==>[A,A9]
==>[A,A10]
==>[A,A11]
==>[A,A12]
==>[A,A13]
==>[A,A14]
==>[A,A15]
==>[A,A16]
==>[A,A17]
==>[A,A18]
==>[A,A19]
==>[A,A20]
==>[A,Y]
==>[A,Z]
gremlin> 

还有,有没有办法直观地看到这些图表?我正在将Gremlin与AWS Neptune一起使用。对于可视化,我将相同的数据集摄取到Neo4j中,该数据集具有用于图形化演示的简洁的桌面UI界面。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)