Gremlin使用灯泡查询groovy脚本

时间:2014-12-21 07:51:25

标签: python titan gremlin bulbs

我正试图通过python库titan找出一种更好的方法gremlinbulbs

我有一棵简单的树

       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')

这只给了我最后一个节点。我仍在试图找出sideAffect gremlin必须返回我需要的边缘的事情。

我知道我可以创建自定义脚本并使用这些脚本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有一个很好的教程,那会很有帮助

由于

1 个答案:

答案 0 :(得分:1)

你可以得到这条路。尝试:

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

这会为您提供一个列表:

[startVertex, startIntermediateEdge, intermediateVertex, intermediateTargetEdge, targetVertex]