围绕深度x的顶点列表的所有网络邻域

时间:2015-10-29 17:56:40

标签: gremlin tinkerpop3

我对Gremlin很新。

我有一个Pregel(GraphX)算法正在执行以下操作:给定一个顶点列表,找到所有网络邻域直到N级(相邻顶点和与它们相邻的顶点,重复N次。所以这个数字最远点之间的边缘不超过N)

在Pregel中,这基本上只是从源顶点开始进行最短路径遍历,但在N次迭代后停止。

如何使用Gremlin(tinkerpop3)可以实现相同的行为?

示例用例是 - 在社交网络中,找到所有朋友,朋友的朋友和朋友的朋友的朋友等...

这听起来像是一个非常常见的用例,但我找不到这样做的语法。

1 个答案:

答案 0 :(得分:1)

可能的解决方案:

g.V(1, 2, 3).repeat(
  bothE().dedup().store('edges').bothV().dedup().store('vertices')
).times(2).cap('vertices', 'edges')

这将返回一个对象,其中包含一个包含顶点数组的键vertices和一个包含边数组的键edges

返回顶点和边是具有id(123)到距离2的顶点的邻域。