为什么我的 Gremlin 遍历只添加一条边?
Why does my Gremlin traversal add only one edge?
如 another question, I am attempting to add several "identity" vertices into a "group" vertex. Based on the recipe recommendation 中所述,我正在尝试以遍历器迭代身份顶点而不是在循环中附加额外步骤的方式编写遍历步骤。这是我拥有的:
gts.V(group)
.addE('includes')
.to(V(identityIds as Object[]))
.count().next()
无论我在 identityIds
中传递多少个 ID,这始终 returns 值为 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()
但这也许又回到了你的另一个问题。
如 another question, I am attempting to add several "identity" vertices into a "group" vertex. Based on the recipe recommendation 中所述,我正在尝试以遍历器迭代身份顶点而不是在循环中附加额外步骤的方式编写遍历步骤。这是我拥有的:
gts.V(group)
.addE('includes')
.to(V(identityIds as Object[]))
.count().next()
无论我在 identityIds
中传递多少个 ID,这始终 returns 值为 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()
但这也许又回到了你的另一个问题。