在gremlin中创建多个节点的图形

时间:2016-12-02 12:04:37

标签: graph gremlin

我在gremlin中创建Tinkergraph。

实际上,我想创建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并通过边连接。

1 个答案:

答案 0 :(得分: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]