我无法让 APOC 在 neo4j 上运行。 文档很好......如果存在的话!
我通过 Neo4j Desktop 安装了 apoc 库:
然后我打开一个项目。
我尝试:
CALL apoc.load.json("file:///person.json")
YIELD value
RETURN value;
但是
There is no procedure with the name `apoc.load.json` registered for this database instance. Please ensure you've spelled the procedure name correctly and that the procedure is properly deployed.
确实,尽管安装了可用程序,但并不显示
apoc
。
然后,当我清除Neo4j Desktop没有使用我安装的社区版本后,发现我可以在“更多”选项>终端下找到已安装的版本:
我检查了我的 neoj4.conf 文件是否有这些行:
# Leaving this unconfigured will load all procedures found.
#dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,gds.*
(注释掉,加载所有内容,所以 apoc 应该加载...)
我认为我做得很好,如下所示: APOC安装neo4j桌面
我还尝试删除该项目并重新设置: https://community.neo4j.com/t5/general-discussions/some-apoc-procedures-not-available/m-p/41590
但仍然无法工作...
--
我使用的是neo4j桌面1.5.6。
#已编辑 今天我重复了昨天的步骤,关注@William Lion回答的建议。
在启动 neo4j Desktop 时,系统提示我“本地图形密码已更改”的警报。
这很奇怪,因为我没有改变它......
它既不接受我以前的密码(我用于服务器的密码),也不接受默认的“neo4j”,但可以通过警报,因为我可以
ignore this change until the next Graph start
。
所以我忽略了它,并提示输入密码来连接neo4j服务器。而这一次,apoc被发现了。
我尝试关闭 neo4j 桌面,退出所有打开的项目,然后重新启动。这次我没有被要求输入本地 dbms 的密码。因此,我假设在之前的警报之后,已经重新启动了
next Graph
,并且预计会要求我再次输入密码。
也许问题就出在这里。因此,为了避免将来出现问题:
until the next Graph start
实际上是什么意思?Neo4j Desktop 中的每个 DBMS 实例都必须安装插件(每个项目中可以有多个 DBMS 实例)。此外,在给定时间 Neo4j Desktop 中只能有一个活动的 DBMS。确保您已为要使用的 DBMS 实例安装了插件,并且 DBMS 是当前正在运行的 DBMS。我猜您已成功安装了一个 DBMS 的插件,但尝试使用另一台没有该插件的活动 DBMS 进行查询。
我在 5.12 版本的 LocalDBMS 中也遇到了类似的问题。从插件安装APOC后,仍然不起作用。
当我在一个新项目中尝试使用版本 4.4.29 的 LocalDBMS 时,它起作用了。
可能值得探索不同的版本。