2014-12-21 5 views
1

titangremlin으로 쿼리하는 더 좋은 방법을 파이썬 라이브러리 bulbs을 통해 확인하려고합니다. Gremlin이 구근을 사용하여 그루비 스크립트를 통해 쿼리합니다.

나는 간단한 나무

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

을하고 난 n4을 얻기 위해 원하는 가장자리 : e[n0 -> n1] => e1, e[n1 -> n4] => e2n4에 이르기까지. 그래서 내가 원하는이 예제에서 [e1, e2, n4]

나는 쿼리를하기 전에 노드의 모든 인덱스를 알고있다. 내가 기분이 쿼리를 구축 할 수 있습니다이 정보를이 예 node_ids = ['ddbe4d52e7034ffeb17c9426fc1484af, '754d5e84daad4140ba93cb10ce00cde0', '7b2848543b444fcc94e69d7930ffa996']

에서

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

이는 나에게 마지막 노드를 제공 오히려 길고 반복적입니다. 나는 아직도 gremlin이 내가 필요로하는 모서리를 돌려 주어야만하는이 sideAffect 것을 이해하려고 노력하고있다.

사용자 지정 스크립트를 만들고이 스크립트를 gremlin 전체를 사용할 수 있음을 알고 있지만이 모든 것들에 대해 매우 익숙해 져서 도움을 얻을 수 있습니다. 누군가가 당신의 경로를 얻을 수 있습니다

감사

답변

1

도움이 될 것입니다 놈아/그루비에 좋은 튜토리얼이있는 경우 뭔가의

의사 코드 나는 또한

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 
} 

을 찾고 있어요. 시도 :

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

를이 당신에게 목록을 제공 :

[startVertex, startIntermediateEdge, intermediateVertex, intermediateTargetEdge, targetVertex]