JanusGraph 函数 cyclicPath()

JanusGraph function cyclicPath()

g.V().has('name', 'alice').both().both().cyclicPath().path().by('name')

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

目前还不完全清楚你在问什么,但你的遍历只是翻译成:

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