Var*_*hin 0 cassandra gremlin datastax-enterprise tinkerpop3 datastax-enterprise-graph
请告诉一个简单的解决方案,因为我有数百万个节点,所以需要更少的时间:
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");
Run Code Online (Sandbox Code Playgroud)
由于我正在进行整个图搜索,这需要更长的时间。我们是否可以有一个简单的单个查询来添加一个 vartex 并将一条边从该查询添加到现有顶点,从而减少延迟?
注意我也尝试过以下方法,但以下方法似乎已被废弃,因此给出错误(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()
Run Code Online (Sandbox Code Playgroud)
您指定为“已弃用”的方法确实有效。DSE Graph 和大多数图形数据库不允许您以这种方式分配标识符。id请注意,如果您只需更改to的使用,"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}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
245 次 |
| 最近记录: |