如何在 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) 个步骤。
我仍处于图表和 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) 个步骤。