如何在 Gremlin 中 select 随机顶点

How to select random vertices in Gremlin

我仍处于图表和 gremlin 的早期阶段。

是否可以在 Gremlin 中随机 select 图形顶点?

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

u.out('Friend')[0..9].out('Drives').map()

但是这段代码每次只针对前10个朋友执行。我怎样才能使 selection 有效地随机化?

感谢您的宝贵时间:)

您可以使用 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) 的所有邻居。

这也可能有帮助:Random Walk on Bipartite Graph with Gremlin

在 Gremlin 2.x 中,您可以使用 random 步骤,如:

g.v(1).out.random()

或者在3.x中random变成了coin:

如:

g.V(1).out.coin()

在 3.x 中,您还可以查看 3.x 中的 sample and order(shuffle) 个步骤。