2017-05-24 110 views
0


我對Gremlin非常陌生。我正在嘗試使用Gremlin在DSE圖上構建一個圖。我能夠創建頂點: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) 

我現在正在用型動物標籤,其中,財產的「鑰匙」匹配(即創建和A與C之間的邊緣的兩個節點之間自動添加邊緣,和b之間C)。我努力做到這一點。

我試着做以下

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

但我收到以下錯誤:

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] 

有人可以幫助我在這個問題上? 預先感謝您

回答

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

相關問題