如何将 fetchplan 与 Java API 一起使用?
How can I use fetchplan with Java API?
如 here 所述,如果我将 [*]in_*:-2 out_*:-2
定义为 fetchplan,则查询应该 return 仅属性和 none 有关边缘的信息。
OrientGraph graph = new OrientGraph(URL, USER, USER);
try {
Iterable resultList = graph.command(new OSQLSynchQuery("select from #11:0")).setFetchPlan("[*]in_*:-2 out_*:-2").execute();
OrientVertex user = (OrientVertex) resultList.iterator().next();
for (String s : user.getRecord().fieldNames()) {
System.out.println(s);
}
Iterable resultList2 = graph.command(new OSQLSynchQuery("select from #11:0")).execute();
OrientVertex user2 = (OrientVertex) resultList2.iterator().next();
for (String s : user2.getRecord().fieldNames()) {
System.out.println(s);
}
} finally {
graph.shutdown();
}
我有相同的输出(包括关于边缘的信息),有和没有 fetchplan。我做错了什么?
对于网络协议,Fetch计划是优化网络传输,而不是排斥连接。在上述情况下,如果提取计划排除,OrientDB 客户端将提取连接的边缘。
如 here 所述,如果我将 [*]in_*:-2 out_*:-2
定义为 fetchplan,则查询应该 return 仅属性和 none 有关边缘的信息。
OrientGraph graph = new OrientGraph(URL, USER, USER);
try {
Iterable resultList = graph.command(new OSQLSynchQuery("select from #11:0")).setFetchPlan("[*]in_*:-2 out_*:-2").execute();
OrientVertex user = (OrientVertex) resultList.iterator().next();
for (String s : user.getRecord().fieldNames()) {
System.out.println(s);
}
Iterable resultList2 = graph.command(new OSQLSynchQuery("select from #11:0")).execute();
OrientVertex user2 = (OrientVertex) resultList2.iterator().next();
for (String s : user2.getRecord().fieldNames()) {
System.out.println(s);
}
} finally {
graph.shutdown();
}
我有相同的输出(包括关于边缘的信息),有和没有 fetchplan。我做错了什么?
对于网络协议,Fetch计划是优化网络传输,而不是排斥连接。在上述情况下,如果提取计划排除,OrientDB 客户端将提取连接的边缘。