【问题标题】:How to select random vertices in Gremlin如何在 Gremlin 中选择随机顶点
【发布时间】:2015-02-25 13:50:47
【问题描述】:

我还处于使用图表和 gremlin 的早期阶段。

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

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

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

但是这段代码每次只针对前 10 个朋友执行。如何有效地进行随机选择?

感谢您的宝贵时间:)

【问题讨论】:

  • 似乎我们可以创建一个通用管道,将所需数量的元素作为参数并遍历所有输入,然后返回随机选择的元素数量。

标签: graph gremlin


【解决方案1】:

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

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

或在 3.x 中 random 已变为 coin

如:

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

在 3.x 中,您还可以查看 3.x 中的 sampleorder(shuffle) 步骤。

【讨论】:

    【解决方案2】:

    你可以使用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

    【讨论】:

      猜你喜欢
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多