如上所述here,如果我将[*]in_*:-2 out_*:-2
定义为fetchplan,则查询应仅返回属性,而不返回有关边的信息。
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。我做错了什么?
答案 0 :(得分:0)
使用网络协议,获取计划是优化网络传输,而不是排除连接。在上面的情况下,如果被提取计划排除,OrientDB客户端将获取连接的边缘。