Встроенный Neo4j с Graph Data Science - кажется, что процедура BFS отсутствует
В документации здесь 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?
ОТ: Я ссылаюсь на старую версию документации, потому что она поддерживает условие maxCost для пройденных отношений. Этого нет в более новых версиях (которые, похоже, на самом деле не имеют BFSProc)
1 ответ
Требуемая процедура обычно называется «TraverseProc» и позволяет использовать как BFS, так и DFS.
Файл также не включает имя вызываемого объекта. Обнаружил это через поиск всех моих зависимостей neo4j с
find . -name "*.jar" -exec zipgrep "gds.alpha" '{}' \;