按 parent 个顶点过滤 Gremlin 搜索

Filtering Gremlin search by parent Vertex

我是 Gremlin 的新手。我一直在阅读文档,但仍在努力寻找问题的答案。我假设答案很简单,但不幸的是,我对所有不同的 API 选项感到有点困惑,例如子图、副作用,如果可能的话,希望专家组提供一点 help/clarity。

基本上(作为示例)我有一个如下图所示的图表,我首先需要 select 'A' 然后向下遍历 [=28= 的 children ] ,查找是否有匹配 'A3' 或 'A4' 的顶点。

选择第一个顶点当然很容易,我只需执行以下操作:

.V().has("name", "A")

但是,我不确定现在如何才能将我的第二个顶点搜索仅隔离到 'A' 的 children。正如我之前提到的,我偶然发现了 subgraphs,但无法完全掌握如何利用此功能,或者我是否应该为了我的目的。

我正在使用 TinkerPop3 和 Java 8。

任何帮助将不胜感激!

当您开始遍历时:g.V().has('name','A') 您将获得 "A" 顶点。您之后添加的任何其他步骤仅限于该顶点。因此 g.V().has('name','A').out() 只能给你 "A1" 顶点和相关的 children。

要遍历"A"的所有children,需要repeat()步:

g.V().has('name','A').
  repeat(out()).
    until(has('name',within('A3','A4'))

所以,基本上找到"A",然后遍历children,直到运行进入"A3"或"A4"。

将来,请考虑提供一个 Gremlin 脚本,该脚本可以粘贴到控制台中以构建您的示例图 - 这里是一个 。这种形式的示例图非常有用。