问题描述
此处的文档 https://neo4j.com/docs/graph-data-science/1.1/algorithms/bfs/#algorithms-bfs 描述了一个可调用的“gds.alpha.bfs.stream”。
为了调用它,据我所知,它需要在嵌入式数据库中注册。类似的东西
Procedures proceduresService = ((GraphDatabaseAPI) graphDb).getDependencyResolver().resolveDependency(Procedures.class);
proceduresService.registerProcedure(AllShortestPathsProc.class,true);
否则,neo4j 将抛出异常,通知我们我们的不当行为:
没有为该数据库实例注册名称为 gds.alpha.bfs.stream
的过程。请确保您正确拼写了程序名称并且正确部署了程序。
但是,我似乎找不到任何 *Proc.class 可用于 BFS 或 BreadthFirstSearch。
此文档不正确吗? 我需要一个不同的 jar 来使用描述的 bfs 算法吗?
OT:我正在链接到旧版本的文档,因为它支持遍历关系的 maxCost 条件。较新的版本(似乎实际上也没有有具有 BFSProc)
解决方法
所需的过程方便地称为“TraverseProc”,并允许使用 BFS 和 DFS。
该文件也不包含可调用对象的名称。通过使用
搜索我的所有neo4j依赖项发现它find . -name "*.jar" -exec zipgrep "gds.alpha" '{}' \;