Встроенный 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.

Эта документация неверна? Нужна ли мне другая банка для использования описанного алгоритма bfs?

OT: Я ссылаюсь на более старую версию документации, потому что она поддерживает условие maxCost для пройденных отношений. Это отсутствует в более новых версиях (которые также, кажется, на самом деле не имеют BFSProc)


person Stefan Schilling    schedule 04.06.2021    source источник


Ответы (1)


Требуемая процедура удобно называется TraverseProc и позволяет использовать как BFS, так и DFS.

Файл также не включает имя вызываемого объекта. Обнаружил это путем поиска всех моих зависимостей neo4j с помощью

find . -name "*.jar" -exec zipgrep "gds.alpha" '{}' \;

(из Как искать строку в файлах JAR)

person Stefan Schilling    schedule 04.06.2021
comment
на заметку: не могу рекомендовать. Работает очень медленно на ненаправленной проекции - person Stefan Schilling; 05.06.2021