【问题标题】:Gremlin querying through groovy script using bulbsGremlin 使用灯泡通过 groovy 脚本进行查询
【发布时间】:2015-02-19 15:55:11
【问题描述】:

我正在尝试通过 python 库 bulbs 找出一个更好的方法来查询 titangremlin

我有一棵简单的树

       n0
     /   \
   /       \
  n1       n2
 /  \       \
n3  n4      n5

我想得到n4 和边缘:e[n0 -> n1] => e1e[n1 -> n4] => e2 直到n4。所以在这个例子中我想要[e1, e2, n4]

在进行查询之前,我知道节点的所有索引。在这个例子中node_ids = ['ddbe4d52e7034ffeb17c9426fc1484af, '754d5e84daad4140ba93cb10ce00cde0', '7b2848543b444fcc94e69d7930ffa996']

有了这些信息,我可以构建这个我觉得相当长且重复的查询

g.V('nid', 'ddbe4d52e7034ffeb17c9426fc1484af').out
    .has('nid', '754d5e84daad4140ba93cb10ce00cde0').out
    .has('nid', '7b2848543b444fcc94e69d7930ffa996')

这只给了我最后一个节点。我仍在试图弄清楚 gremlin 必须返回我需要的边缘的 sideAffect 东西。

我知道我可以创建自定义脚本并使用那些彻底的 gremlin,但我对所有这些东西都很陌生,因此我们将不胜感激。

我正在寻找的东西的伪代码

def get_node(nodes) {
    edges = []
    for node in nodes:
        get first node
        find edge that goes to second node
        edges.append(edge)
    return edges + last node
}

另外,如果有人有关于 gremlin/groovy 的好教程会有所帮助

谢谢

【问题讨论】:

    标签: python titan gremlin bulbs


    【解决方案1】:

    你可以得到路径。试试:

    g.V('nid', 'ddbe4d52e7034ffeb17c9426fc1484af').outE.inV
    .has('nid', '754d5e84daad4140ba93cb10ce00cde0').outE.inV
    .has('nid', '7b2848543b444fcc94e69d7930ffa996').path
    

    这会给你一个列表:

    [startVertex, startIntermediateEdge, intermediateVertex, intermediateTargetEdge, targetVertex]
    

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 2022-12-09
      • 1970-01-01
      相关资源
      最近更新 更多