我正在尝试从Cypher查询中获取db-hits的总数。出于某种原因,我在调用时总是得到0:
String query = "PROFILE MATCH (a)-[r]-(b)-[p]-(c)-[q]-(a) RETURN a,b,c";
Result result = database.execute(query);
while (result.hasNext()) {
result.next();
}
System.out.println(result.getExecutionPlanDescription().getProfilerStatistics().getDbHits());
数据库似乎还可以。达到这种价值的方式有什么不对吗?
答案 0 :(得分:1)
ExecutionPlanDescription
是树状结构。最有可能的是,top元素本身并不直接命中数据库,例如投影。
因此,您需要使用ExecutionPlanDescription.getChildren()
编写递归函数来钻取查询计划的各个部分。例如。如果其中一个孩子(或子*孩子)是Expand
类型的计划,则可以使用plan.getProfilerStatistics().getDbHits()
。