Gremlin得到每个循环的第一个顶点

时间:2015-10-13 12:54:32

标签: java gremlin

我循环浏览这样的图表:

enter image description here

像格雷姆林这样的第一个广度

pipe.start(unProcessed)
                .as("x")
                .bothE()
                .as("existingEdge")
                .bothV()
                .hasNot("processed",true)
                .loop("x", new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
                    public Boolean compute(LoopPipe.LoopBundle<Vertex> loopBundle) {
                        return true;
                    }
                }, new PipeFunction<LoopPipe.LoopBundle<Vertex>, Boolean>() {
                    public Boolean compute(LoopPipe.LoopBundle<Vertex> loopBundle) {
                        return true;
                    }
                })
                .as("newVertex")
                .select(Arrays.asList("x","newVertex"));

我想要的是从循环的这个迭代开始的顶点,以及下一个。所以结果我想看

  1. A,B
  2. B,C
  3. B,d
  4. B,E
  5. C,F
  6. d,F
  7. 然而,我得到的是

    1. A,B
    2. A,C
    3. A,D
    4. A,E
    5. A,F
    6. A,F
    7. 它看起来像&#34; x&#34;在管道中始终是管道中的第一个顶点,而不是循环迭代中的第一个顶点,这就是我想要的。

      看起来这应该很容易,我错过了一些简单的东西,但我找不到它。

1 个答案:

答案 0 :(得分:0)

需要的是_()或“IdentityPipe”

sample.name

这对我有用。