Gremlin:为所有连接的节点查找叶节点而不应用限制

Gremlin:为所有连接的节点查找叶节点而不应用限制,gremlin,amazon-neptune,gremlin-server,Gremlin,Amazon Neptune,Gremlin Server,扩展 我有一组彼此紧密连接的节点(集群),我正在寻找一个结果集,该结果集具有集群中每个节点的成对组合,以及在任何级别链接的所有节点,这些节点没有任何向外的边 尽管上面链接中提供的解决方案会生成所需的结果集,但我必须提供一个预设的限制值,如果没有该值,查询将永远运行。我正在努力寻找是否有一个替代方案可以在不提供预设限制的情况下工作 样本数据: 要帮助可视化图形,请执行以下操作: 范围A-X中的每个节点都连接到其他更高的节点 以单向边的字典顺序排列。例:A->B, A->C…A->X;B->C,B

扩展

我有一组彼此紧密连接的节点(集群),我正在寻找一个结果集,该结果集具有集群中每个节点的成对组合,以及在任何级别链接的所有节点,这些节点没有任何向外的边

尽管上面链接中提供的解决方案会生成所需的结果集,但我必须提供一个预设的限制值,如果没有该值,查询将永远运行。我正在努力寻找是否有一个替代方案可以在不提供预设限制的情况下工作

样本数据:

要帮助可视化图形,请执行以下操作:

  • 范围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。通过取消限制,看起来所有路径都在评估和猜测是否有方法跳过为每个选定节点及其叶节点的组合查找任何其他路径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> 
还有,有没有办法直观地看到这些图表?我正在使用AWS海王星与小精灵。对于可视化,我将相同的数据集吸收到Neo4j中,它有一个整洁的桌面UI界面用于图形显示