2017-05-24 20 views
0


저는 Gremlin에 새로 왔습니다. Gremlin을 사용하여 DSE 그래프에서 그래프를 작성하려고합니다. 내가 자동으로 A와 C 사이의 differents 재산 '키'일치 (즉, 생성 라벨과 가장자리 두 노드 사이의 가장자리를 추가 할 찾고Gremlin : 동일한 속성을 가진 노드 사이에 가장자리 추가하기

이제
a = graph.addVertex(label, 'label1', 'key', 1) 
b = graph.addVertex(label, 'label1', 'key', 2) 
c = graph.addVertex(label, 'label2', 'key', 1) 
d = graph.addVertex(label, 'label2', 'key', 2) 

,와 b 사이 : 나는 정점을 만들 수 있어요 기음). 나는 그것을하기 위해 저글링하고있다.

No signature of method: org.apache.tinkerpop.gremlin.process.traversal.traverser.B_O_Traverser.values() is applicable for argument types: (java.lang.String) values: [key] 

수 누군가가 나에게이 문제에 대한 지원 :

은 내가

g.V().hasLabel("label1").sideEffect{g.V().("label2").has("key",it.key).addEdge("link",it)} 

그러나 나는 다음과 같은 오류를 얻고 다음을 수행하려고? 미리 감사드립니다.

답변

3

중첩 된 g.V()은 일반적으로 나쁜 생각입니다. 당신은 하나의 통과를 사용하여 문제를 해결할 수 :

g.V().hasLabel("label1").as("a"). 
    V().hasLabel("label2").as("b"). 
    where("a", eq("b")).by("key"). 
    addE("link").from("a").to("b") 

은 또한 당신이 DSE 그래프에서 스캔이 탐색 작업을 할 수 있도록해야합니다 있습니다.

+0

대단히 감사합니다! 그것은 정확하게 무엇을 찾고 있었고, 그것은 나를 많이 도왔습니다! – phaidara