我对Gremlin很新。
我有一个Pregel(GraphX)算法正在执行以下操作:给定一个顶点列表,找到所有网络邻域直到N级(相邻顶点和与它们相邻的顶点,重复N次。所以这个数字最远点之间的边缘不超过N)
在Pregel中,这基本上只是从源顶点开始进行最短路径遍历,但在N次迭代后停止。
如何使用Gremlin(tinkerpop3)可以实现相同的行为?
示例用例是 - 在社交网络中,找到所有朋友,朋友的朋友和朋友的朋友的朋友等...
这听起来像是一个非常常见的用例,但我找不到这样做的语法。
答案 0 :(得分:1)
可能的解决方案:
g.V(1, 2, 3).repeat(
bothE().dedup().store('edges').bothV().dedup().store('vertices')
).times(2).cap('vertices', 'edges')
这将返回一个对象,其中包含一个包含顶点数组的键vertices
和一个包含边数组的键edges
。
返回顶点和边是具有id(1
,2
,3
)到距离2
的顶点的邻域。