2016-12-02 75 views
0

我在gremlin中創建了Tinkergraph。在gremlin中創建多個節點的圖形

實際上,我想創建50個節點的圖形,並且它們通過邊緣隨機連接。

我已經創建了50個節點:

(0..<50).each{graph.addVertex().property("NodeId",it)} 

創建50個節點。

我無法正確創建圖形,通過邊緣連接節點。沒有一個節點應該離開。

我嘗試這樣做也:

v = g.V().has("NodeId",0).next(); (0..<50).each{v.addEdge("childs",g.V().has("NodeId",it).next())} 

它創建圖,其中所有的節點都連接到唯一的一個節點。

任何想法如何解決它?

創建50個節點的Tinkergraph並通過邊連接。

回答

0

你的問題對我來說不是很清楚。你問如何連接每個頂點?如果是的話,在這裏你去:

gremlin> g = TinkerGraph.open().traversal() 
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard] 
gremlin> g.addV().emit().repeat(property("NodeId", loops()).addV()).times(49).as("x"). 
......1> sideEffect(hasNot("NodeId").property("NodeId", 49)).barrier(). 
......2> V().where(neq("x")).addE("childs").from("x").iterate() 

在這一點上你有50個頂點,每一個有child邊緣圖中的相互的頂點處連接的圖表。

gremlin> g 
==>graphtraversalsource[tinkergraph[vertices:50 edges:2450], standard] 

讓我們挑選一個隨機頂點來驗證它實際上是連接到圖中所有的所有頂點,除了它本身。

gremlin> g.V().has("NodeId", 30).out("childs").values("NodeId").fold().order(local) 
==>[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49] 
+0

我要連接在二叉樹模式 –

+0

'g.addV()。重複(節點__。作爲( 「A」)。工會(ADDV()。阿迪( 「左」)。從( ()「),addV()。addE(」right「)。from(」a「))。inV())。times(5).iterate()' - 創建深度爲5的二叉樹但是,這似乎與你最初的問題沒有多大關係,因此我仍然不確定,如果它回答你的問題, –

相關問題