0

Пожалуйста, скажите простое решение, которое занимает меньше времени, поскольку у меня есть миллионы узлов:Добавить Mutiple вершины и Mutiple края на одном дыхании в DSE-5.0.5 с помощью драйвера Java

for(int i=1100000; i<=1200000;i++){ 
     GraphStatement q1 = new SimpleGraphStatement("g.addV(label, 'Asset','name','Asset"+i+"','type','"+1+"').as('a')").setGraphName("lookingglass"); 

    System.out.println("Added node----"+i); 
    } 

for(int i=1100000;i<=1200000;i++){ 
     //int j=i+1; 
    Vertex v1 = dseSession.executeGraph("g.V().has('name','Org"+1000+"')").one().asVertex(); 
    Vertex v2 = dseSession.executeGraph("g.V().has('name','Asset"+i+"')").one().asVertex(); 

    SimpleGraphStatement s = new SimpleGraphStatement(
      "def v1 = g.V(id1).next()\n" + 
        "def v2 = g.V(id2).next()\n" + 
        "v1.addEdge('HAS', v2)") 
      .set("id1", v1) 
      .set("id2", v2); 

    dseSession.executeGraph(s); 
    System.out.println("Added Edge "+i); 
    } 
    System.out.println("Done"); 

Как я делаю все Поиск по графику занимает больше времени. Можем ли мы иметь простой простой запрос, который мог бы добавить vartex и добавить к нему ребро к существующей вершине с меньшей задержкой?

Примечание Я попытался с помощью следующего подхода также, но следующий подход depricated, кажется, и таким образом дает ошибку (Vertex не поддерживает пользовательские поставляемые идентификаторы:

g.addV().property(id, "A").as("a"). 
     addV().property(id, "B").property("value", 100).as("b"). 
     addV().property(id, "C").property("value", 200).as("c"). 
     addV().property(id, "D").property("value", 500).as("d"). 
     addV().property(id, "E").property("value", 1000).as("e"). 
     addV().property(id, "Z").property("value", 900).as("z"). 
     addE("link").from("a").to("b").property("weight", 80). 
     addE("link").from("a").to("c").property("weight", 20). 
     addE("link").from("b").to("d").property("weight", 50). 
     addE("link").from("b").to("e").property("weight", 40). 
     addE("link").from("z").to("d").property("weight", 10).iterate() 

ответ

3

Метод, указанный в качестве «устаревшим» делает . работа DSE Graph, и большинство графа datbases, не позволяют назначать идентификаторы, что путь Обратите внимание, что если вы просто изменить использование id в "myid" то, что синтаксис Gremlin приемлем:.

gremlin> g.addV().property("myid", "A").as("a"). 
......1> addV().property("myid", "B").property("value", 100).as("b"). 
......2> addV().property("myid", "C").property("value", 200).as("c"). 
......3> addV().property("myid", "D").property("value", 500).as("d"). 
......4> addV().property("myid", "E").property("value", 1000).as("e"). 
......5> addV().property("myid", "Z").property("value", 900).as("z"). 
......6> addE("link").from("a").to("b").property("weight", 80). 
......7> addE("link").from("a").to("c").property("weight", 20). 
......8> addE("link").from("b").to("d").property("weight", 50). 
......9> addE("link").from("b").to("e").property("weight", 40). 
.....10> addE("link").from("z").to("d").property("weight", 10).iterate() 
gremlin> g.V() 
==>v[{~label=vertex, community_id=1368843392, member_id=512}] 
==>v[{~label=vertex, community_id=1368843392, member_id=513}] 
==>v[{~label=vertex, community_id=1368843392, member_id=514}] 
==>v[{~label=vertex, community_id=1368843392, member_id=515}] 
==>v[{~label=vertex, community_id=1368843392, member_id=516}] 
==>v[{~label=vertex, community_id=1368843392, member_id=517}]