代码之家  ›  专栏  ›  技术社区  ›  Jeff

JanusGraph函数cyclicPath()

  •  0
  • Jeff  · 技术社区  · 7 年前
    g.V().has('name', 'alice').both().both().cyclicPath().path().by('name')
    

    为什么我们需要2个both()来获得cyclicPath()?

    1 回复  |  直到 7 年前
        1
  •  3
  •   stephen mallette    7 年前

    关于你在问什么还不完全清楚,但你的遍历只是转换为:

    g.V().has('name', 'alice'). // (1)
      both().                   // (2)
      both().                   // (3)
      cyclicPath().             // (4)
      path().by('name')         // (5)
    
    1. 找到“name”为“alice”的顶点
    2. 从传入和传出边上的“alice”移动到相邻顶点
    3. 对于所有这些顶点,在传入和传出边上再次向相邻顶点移动。值得注意的是,其中一些路径将回到“爱丽丝”
    4. 检查遍历器走这么远的路径,并过滤掉任何不返回其起点的路径(即不返回“alice”)。此步骤的替代方法是 simplePath() 这将过滤出循环的路径(即返回开始)。
    5. 显示遵循的路径,并将“名称”属性提取到路径中每个顶点的路径中。