如何在Gremlin中选择随机顶点

3

我在图形和Gremlin方面仍处于早期阶段。

在Gremlin中是否可能随机选择图形顶点?

考虑以下管道,它获取用户朋友拥有的汽车:

u.out('Friend').shuffle().limit(10).out('Drives').map()

但是每次仅针对前10位朋友执行此代码。如何有效地进行随机选择?

感谢您的时间 :)


似乎我们可以创建一个通用的管道,它以所需元素数量为参数,并遍历所有输入,然后返回那些随机选择的元素数量。 - Paul Jackson
2个回答

6
在 Gremlin 2.x 中,您可以使用 random 步骤,如下所示:
g.v(1).out.random()

或者在3.x中,random已变为coin
如下:
g.V(1).out.coin()

在3.x版本中,您可能还需要查看示例顺序(洗牌)步骤。

1
你可以使用shuffle
 g = TinkerGraphFactory.createTinkerGraph()
 gremlin> g.v(1).out.shuffle[0]
 ==>v[3]
 gremlin> g.v(1).out.shuffle[0]
 ==>v[2]
 gremlin> g.v(1).out.shuffle[0]
 ==>v[3]
 gremlin> g.v(1).out.shuffle[0]
 ==>v[4]

这种解决方案效率不高,因为需要获取所有v(1)的邻居。
这可能也有所帮助:使用Gremlin在二分图上进行随机游走

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接