我对Gremlin很新。我一直在阅读文档,但仍在努力寻找我的问题的答案。我假设答案很简单,但不幸的是,它与所有不同的API选项有点混淆,例如子图,副作用,如果可能的话,希望得到专家组的一点帮助/澄清。
基本上(作为示例)我有一个如下所示的图表,我首先需要选择' A'然后走过A' A'只是,找出是否有匹配' A3'或者' A4'。
选择第一个Vertex当然很简单,我只需要做一些事情:
.V().has("name", "A")
然而,我不确定我现在如何将我的第二个顶点搜索与“A' A'只要。正如我之前提到的那样,我偶然发现了subgraphs
,但是我无法完全掌握如何利用这种能力,或者我是否应该为了我的目的。
我正在使用TinkerPop3和Java 8.
任何帮助将不胜感激!
答案 0 :(得分:4)
当您使用:g.V().has('name','A')
开始遍历时,您将获得" A"顶点。之后添加的任何其他步骤都限制在该顶点之外。因此g.V().has('name','A').out()
只能给你" A1"顶点和相关的孩子。
要遍历" A"的所有孩子,您需要repeat()
步骤:
g.V().has('name','A').
repeat(out()).
until(has('name',within('A3','A4'))
所以,基本上找到" A"然后遍历孩子直到你遇到" A3"或" A4"。
将来,请考虑提供可以粘贴到控制台中的Gremlin脚本来构建示例图 - 这里是example。该形式的示例图非常有用。