2016-12-02 194 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的二叉树但是,这似乎与你最初的问题没有多大关系,因此我仍然不确定,如果它回答你的问题, –