2016-11-17 102 views
1

我已經使用以下命令創建了一個圖形,並且我無法找到一種可以爲其添加邊的方法。Gremlin:無法使用控制檯將邊緣添加到圖形

g = TinkerGraph.open().traversal() 
g.addV('A1').addV('A2').addV('A3').addV('B3'). 

我試過以下命令的幾個變體來添加邊緣。

g.V('A2').addEdge('pre',V('A1')) 
No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.addEdge() is applicable for argument types: (java.lang.String, org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal) values: [pre, [GraphStep(vertex,[A1])]] 
+0

版本:Apache TinkerPop 3.2.3 – atulshgl

回答

2

你沒有提到你使用的是什麼版本,所以我會指的是Apache TinkerPop 3.2.3。以下鏈接指向add edge stepaddE()的文檔。

當您創建頂點時,add vertex stepaddV()將頂點標籤作爲參數,而不是一個ID。頂點標籤通常不是唯一的,所以你最好使用ID。

gremlin> Gremlin.version() 
==>3.2.3 
gremlin> g = TinkerGraph.open().traversal() 
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] 
gremlin> g.addV('A1').addV('A2').addV('A3').addV('B3') 
==>v[3] 
gremlin> g.V().valueMap(true) 
==>[id:0,label:A1] 
==>[id:1,label:A2] 
==>[id:2,label:A3] 
==>[id:3,label:B3] 
gremlin> g.V(1L).addE('pre').to(g.V(0L)) 
==>e[4][1-pre->0] 
+0

你還可以告訴我們是否可以使用頂點屬性添加邊,例如:名稱?我不理解文檔中的以下行。 (''')//(2)' – atulshgl

+1

@atulshgl上面一行表示帶有標籤爲'''''''的所有頂點並且將它們與頂點'''a'''(在遍歷中早些時候用'''as(「a」)''聲明)連接,使用標籤'''createdBy'''的邊緣 –