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)
- 找到"name"为"alice"
的顶点
- 在入边和出边上从 "alice" 遍历到相邻顶点
- 对于所有这些顶点,在传入和传出边上再次遍历到相邻顶点。值得注意的是,其中一些路径将返回到 "alice"
- 检查遍历器走到这一步所采用的路径,并过滤掉所有不 return 到起点的路径(即不 return 到 "alice")。此步骤的替代方法是
simplePath()
,它将过滤掉循环的路径(即返回开始)。
- 显示所遵循的路径并将 "name" 属性 提取到路径中每个顶点的路径中。
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)
- 找到"name"为"alice" 的顶点
- 在入边和出边上从 "alice" 遍历到相邻顶点
- 对于所有这些顶点,在传入和传出边上再次遍历到相邻顶点。值得注意的是,其中一些路径将返回到 "alice"
- 检查遍历器走到这一步所采用的路径,并过滤掉所有不 return 到起点的路径(即不 return 到 "alice")。此步骤的替代方法是
simplePath()
,它将过滤掉循环的路径(即返回开始)。 - 显示所遵循的路径并将 "name" 属性 提取到路径中每个顶点的路径中。