微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的 Gremlin 遍历只添加了一条边?

如何解决为什么我的 Gremlin 遍历只添加了一条边?

another question 中所述,我试图将几个“身份”顶点添加到“组”顶点中。基于 the recipe recommendation,我试图以遍历器迭代标识顶点而不是在循环中附加额外步骤的方式编写遍历步骤。这是我所拥有的:

gts.V(group)
  .addE('includes')
  .to(V(identityIds as Object[]))
  .count().next()

无论我在 identityIds 中传递多少个 ID,这始终返回值 1,并且只创建一条边。配置文件表明,即使我传递了多个值,也仅为 __.V 创建了一个遍历器:

Traversal Metrics
Step                                                               Count  Traversers       Time (ms)    % Dur
=============================================================================================================
TinkergraphStep(vertex,[849e1878-86ad-491e-b9f9...                     1           1           0.633    40.89
AddEdgeStep({label=[Includes],~to=[[TinkerGrap...                     1           1           0.915    59.11
  TinkergraphStep(vertex,[50d9bb4f-ed0d-493d-bf...                     1           1           0.135
                                            >TOTAL                     -           -           1.548        -

为什么只有一条边添加到第一个顶点?

解决方法

您使用的 to() 语法不太正确。像 to() 这样的调制器期望您提供的遍历生成单个 Vertex 而不是列表。因此,给定 V(identityIds),只有从该 id 列表返回的第一个顶点将用于构造边。 to()by() 等步进调制器倾向于这样工作。

你可能想改变你的方法:

gts.V(identityIds)
  .addE('includes')
  .from(V(group))
  .count().next()

但也许这又回到了你的另一个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。