为了深入练习和深入了解Neo4j内部,我决定实现简单的存储过程以找到最大程度的节点。
我知道它已实施:
call apoc.stats.degrees(null)
奇怪的是,我收到了一个错误:
没有注册名称为
apoc.stats.degrees
的程序 对于此数据库实例。请确保您已拼写该程序 正确命名并正确部署该过程。
版本3.2.3
。
但是,我将自己实施它,并了解我错在哪里: 看看这段代码:
@Procedure(name = "com.maxdemarzi.get_max_degree", mode = Mode.DEFAULT)
@Description("CALL com.maxdemarzi.get_max_degree()")
public Stream<LongResult> GetMaxDegree() {
ResourceIterable<Node> allNodes = db.getAllNodes();
int degree = allNodes.stream().max((Node n1, Node n2)-> n1.getDegree() >= n2.getDegree() ? 0 : 1).get().getDegree();
return Stream.of(new LongResult(Long.valueOf(degree)));
}
它始终返回0
,尽管我的图表中存在度数为5
的节点。
欢迎使用每个提示,以便更好地理解我的代码不正常的原因!
答案 0 :(得分:0)
请检查Neo4j插件中安装的apoc-3.2.3.x.jar