Neo4j устанавливает APOC и графические алгоритмы Neo.ClientError.Procedure.ProcedureRegistrationFailed
У меня есть некоторые проблемы с плагинами APOC и Graph Algorithms. Я следовал инструкции, чтобы положить.jars в {NEO4j_HOME}/plugins
а также изменить настройки в моем {NEO4j_HOME}/conf/neo4j.conf
dbms.directories.data=/Users/mlo/neo4j-community-3.3.1/data
dbms.directories.plugins=/Users/mlo/neo4j-community-3.3.1/plugins
dbms.directories.certificates=/Users/mlo/neo4j-community-3.3.1/certificates
dbms.directories.logs=/Users/mlo/neo4j-community-3.3.1/logs
dbms.directories.lib=/Users/mlo/neo4j-community-3.3.1/lib
dbms.directories.run=/Users/mlo/neo4j-community-3.3.1/run
dbms.security.auth_enabled=false
dbms.security.procedures.unrestricted=algo.*
dbms.security.procedures.unrestricted=apoc.*
Несколько процедур работают.
CALL apoc.help('dijkstra')
CALL algo.list()
Однако большинство хранимых процедур не работают вообще.
Neo.ClientError.Procedure.ProcedureRegistrationFailed
algo.unionFind is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
algo.pageRank is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.
Может кто-нибудь указать, где идет не так в моих настройках? Благодарю.
2 ответа
Измените эти строки:
dbms.security.procedures.unrestricted=algo.*
dbms.security.procedures.unrestricted=apoc.*
чтобы:
dbms.security.procedures.unrestricted=algo.*,apoc.*
и перезапустите сервис Neo4j.
Следуя ответу @ Bruno Peres, я столкнулся с похожими проблемами (доступ / использование Neo4j APOC/Algorithms) в Arch Linux с Neo4j 3.4.0.
Я использую APOC (Awesome Процедуры для Neo4j) и Алгоритмы Efficient Graph для Neo4j, с соответствующей версией .jar
файлы, загруженные в мой каталог плагинов Neo4j; т.е.
/mnt/Vancouver/apps/neo4j/neo4j-community-3.4.0/plugins/apoc-3.4.0.1-all.jar
/mnt/Vancouver/apps/neo4j/neo4j-community-3.4.0/plugins/graph-algorithms-algo-3.4.0.0.jar
Тем не менее, когда я попытался запустить эту команду,
CALL algo.pageRank.stream('Metabolism', 'yields',
{iterations:20, dampingFactor:0.85})
YIELD node, score
RETURN node,score order by score desc limit 20
в моем браузере Neo4j я получил эту ошибку:
Error: Neo.ClientError.Procedure.ProcedureRegistrationFailed
Neo.ClientError.Procedure.ProcedureRegistrationFailed: algo.pageRank is
unavailable because it is sandboxed and has dependencies outside of the
sandbox. Sandboxing is controlled by the
dbms.security.procedures.unrestricted setting. Only unrestrict
procedures you can trust with access to database internals.
Согласно принятому ответу здесь (SO 48773505) Neo4j Установите алгоритмы APOC и Graph...
Мне нужно было внести следующие изменения в мой файл "neo4j.conf",
/mnt/Vancouver/apps/neo4j/neo4j-community-3.4.0/conf/neo4j.conf
Раскомментируйте эту строку,
dbms.directories.plugins=plugins
и добавьте / отредактируйте эту строку,
dbms.security.procedures.unrestricted=apoc.trigger.*,apoc.*,algo.*
Примечание (выше), кажется, что neo4j.conf
принимает один
dbms.security.procedures.unrestricted=...
линия! Наличие отдельных строк, например
dbms.security.procedures.unrestricted=apoc.trigger.*,apoc.*
dbms.security.procedures.unrestricted=algo.*
вызывает ... is unavailable because it is sandboxed and has dependencies outside of the sandbox ...
ошибка!
Наконец, перезапустите сервер / экземпляр Neo4j,
neo4j restart