2016-12-02 1 views
0

gremlin에서 Tinkergraph를 만듭니다.gremlin의 여러 노드 그래프 만들기

실제로 50 개 노드의 그래프를 만들고 무작위로 가장자리를 통해 연결됩니다.

내가 50 개 노드를 만든 : 50 개 노드를 생성

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

.

가장자리를 통해 노드를 연결하여 그래프를 올바르게 만들 수 없습니다. 아무도 남겨서는 안됩니다.

나는 또한이 시도 :

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

그것은 모든 노드가 하나 개의 노드에 연결되어있는 그래프를 작성합니다.

아이디어를 고치는 방법은 무엇입니까?

50 개 노드의 틴크 그래프를 만들고 가장자리를 통해 연결합니다.

답변

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

내가 g.addV(). 반복 (' –

+0

이진 트리 패턴의 노드를 연결하려는 __. 등 ("A"). 노동 조합 (ADDV(). addE() "왼쪽".에서 (inV()). times (5) .iterate()'- 깊이 5 인 이진 트리를 만듭니다. 그러나 귀하의 초기 질문과 관련이없는 것으로 보입니다. 따라서 귀하의 질문에 대한 대답이 확실하지 않은 경우, –

관련 문제