Groovy 如何从源节点遍历多个不同的关系

Groovy 如何从源节点遍历多个不同的关系,groovy,gremlin,Groovy,Gremlin,我的图表是这样的 P1 | R1 | Src / \ R2 R2 / \ C1 C2 我试图提取节点Src、R2、C2、R1和P1,其中R表示关系,p、C分别表示父节点和子节点 我试过这个: g.V('src').out('R1', 'R2') // now i want some filters on node and relation depending upon

我的图表是这样的

      P1
       |
      R1
       |
      Src
      /  \
     R2   R2
     /     \
    C1      C2
我试图提取节点Src、R2、C2、R1和P1,其中R表示关系,p、C分别表示父节点和子节点

我试过这个:

g.V('src').out('R1', 'R2') // now i want some filters on node and relation depending upon type.
我可以通过访问src中的关系R1,然后返回src并访问R2和C2来实现这一点,但我正在尝试避免重复遍历


我对gremlin完全陌生,已经检查了文档,但找不到具体内容

有很多选择,但我想答案取决于你最终想要实现什么。如果符合预期输出,您可以简单地将结果投影到地图并独立处理每个边标签:

g.V('src').
  project('r1','r2').
    by(out('R1').has(...)....fold())
    by(out('R2').has(...)....fold())
或者,如果您还没有真正准备好结果,并且不需要将两个流分离,您可以使用union:


也许这些选项会给你带来一些灵感。

我是新来的,想和union一起去,看起来很简单,tx。
g.V('src').union(out('R1').has(...), out('R2').has(...))....