安装
|
本手册涵盖了 APOC Core 的文档。有关 APOC Extended 的内容,请前往 APOC Extended 手册。 |
APOC 已随 Neo4j 一起打包,位于 $NEO4J_HOME/labs 目录下。
Neo4j Desktop
在使用 Neo4j Desktop 创建数据库后,可以通过前往 Manage(管理)界面,然后进入 Plugins(插件)选项卡来安装 APOC。点击 APOC 框中的 Install(安装),等待直到在“APOC”旁边看到绿色复选标记即可。
Neo4j Server
由于 APOC 依赖于 Neo4j 的内部 API,因此您需要使用与您的 Neo4j 安装版本匹配的 APOC 版本。请确保 APOC 版本的年和月与 Neo4j 版本的年和月一致。补丁号无需匹配(例如,APOC 2025.06.2 与 Neo4j 2025.06.0 兼容)。
前往 Neo4j 2026.03 的最新发行版,下载二进制 jar 文件并将其放入您的 $NEO4J_HOME/plugins 文件夹中。
您可以在此处找到所有发行版。
将 jar 文件移至 plugins 文件夹后,您必须通过 neo4j restart 重启 neo4j。
APOC 使用一致的版本控制方案:<neo4j-version>.<apoc> 版本。版本号末尾的 <apoc> 部分会随着每次 apoc 发行而递增。
版本兼容性矩阵解释了 Neo4j 和 APOC 版本之间的映射关系
| APOC 版本 | Neo4j 版本 |
|---|---|
2026.03.1 (2026.02.x) |
|
2026.02.2 (2026.02.x) |
|
2026.01.3 (2026.01.x) |
|
2025.12.1 (2025.12.x) |
|
2025.11.2 (2025.11.x) |
|
2025.10.1 (2025.10.x) |
|
2025.09.0 (2025.09.x) |
|
2025.08.0 (2025.08.x) |
|
2025.07.1 (2025.07.x) |
|
2025.06.2 (2025.06.x) |
|
2025.05.1 (2025.05.x) |
|
2025.04.0 (2025.04.x) |
|
2025.03.0 (2025.03.x) |
|
2025.02.0 (2025.02.x) |
|
2025.01.0 (2025.01.x) |
|
5.26.24 (5.26.x) |
点击查看更早的 APOC 发行版
| APOC 版本 | Neo4j 版本 |
|---|---|
5.25.1 (5.25.x) |
|
5.24.0 (5.24.x) |
|
5.23.0 (5.23.x) |
|
5.22.0 (5.22.x) |
|
5.21.0 (5.21.x) |
|
5.20.0 (5.20.x) |
|
5.19.0 (5.19.x) |
|
5.18.0 (5.18.x) |
|
5.17.0 (5.17.x) |
|
5.16.0 (5.16.x) |
|
5.15.0 (5.15.x) |
|
5.14.0 (5.14.x) |
|
5.13.0 (5.13.x) |
|
5.12.0 (5.12.x) |
|
5.11.0 (5.11.x) |
|
5.10.0 (5.10.x) |
|
5.9.0 (5.9.x) |
|
5.8.0 (5.8.x) |
|
5.7.0 (5.7.x) |
|
5.6.0 (5.6.x) |
|
5.5.0 (5.5.x) |
|
5.4.0 (5.4.x) |
|
5.3.0 (5.3.x) |
|
5.2.0 (5.2.x) |
|
5.1.0 (5.1.x) |
|
5.0.0 (5.0.x) |
|
4.4.0 (4.4.x) |
如果启动时检测到的 APOC jar 与 Neo4j 版本不兼容,则 neo4j.log 中会出现 log.warn 警告。
Docker
可以通过 NEO4J_PLUGINS 环境变量将 APOC 用于 Neo4j Docker 镜像。如果使用了此环境变量,APOC 插件文件将在运行时从 Docker 镜像中复制并配置。
|
此功能旨在方便在开发环境中使用 APOC,但不建议在生产环境中使用。 |
docker run \
-p 7474:7474 -p 7687:7687 \
--name neo4j-apoc \
-e NEO4J_apoc_export_file_enabled=true \
-e NEO4J_apoc_import_file_enabled=true \
-e NEO4J_apoc_import_file_use__neo4j__config=true \
-e NEO4J_PLUGINS=\[\"apoc\"\] \
neo4j:2026.03
运行此命令后,我们应该会在输出中看到以下两行
Fetching versions.json for Plugin 'apoc' from https://neo4j.github.io/apoc/versions.json
Installing Plugin 'apoc' from https://github.com/neo4j/apoc/releases/download/2026.03/apoc-2026.03-core.jar to /plugins/apoc.jar
在生产环境中,我们应该下载与我们的 Neo4j 版本相匹配的 APOC 发行版,将其复制到本地文件夹,并将其作为挂载在 /plugins 的数据卷提供。
plugins 目录,然后将该文件夹挂载到 Neo4j Docker 容器中mkdir plugins
pushd plugins
wget https://github.com/neo4j/apoc/releases/download/2026.03/apoc-2026.03-core.jar
popd
docker run --rm -e NEO4J_AUTH=none -p 7474:7474 -v $PWD/plugins:/plugins -p 7687:7687 neo4j:2026.03
如果您想向 Docker 实例传递自定义 apoc 配置,可以使用环境变量,如下所示
docker run \
-p 7474:7474 -p 7687:7687 \
-v $PWD/data:/data -v $PWD/plugins:/plugins \
--name neo4j-apoc \
-e NEO4J_apoc_export_file_enabled=true \
-e NEO4J_apoc_import_file_enabled=true \
-e NEO4J_apoc_import_file_use__neo4j__config=true \
neo4j:2026.03
|
要使用 Powershell 通过 Docker 安装 APOC,需要正确的引号引用
请注意单引号和转义双引号的使用。 |
加载与解除限制
APOC 库包含数百个过程和函数。不建议将所有这些内容加载到 dbms 中,而应遵循最小权限原则。该原则规定,仅应加载执行用户工作负载所需的过程和函数。
应加载的过程和函数可以通过 conf/neo4j.conf 文件中的数据库配置设置 dbms.security.procedures.allowlist 来指定。例如,要加载 apoc.math.maxInt 和 apoc.rel 包中的所有函数,请使用:
-
dbms.security.procedures.allowlist=apoc.math.maxInt,apoc.rel.*.
|
|
出于安全原因,使用内部 API 的过程和函数在默认情况下是禁用的。在这种情况下,同样建议遵循最小权限原则,仅对确定要使用的过程和函数解除限制。
应解除限制的过程和函数可以通过 conf/neo4j.conf 文件中的数据库配置设置 dbms.security.procedures.unrestricted 来指定。例如,要解除对 apoc.cypher.runFirstColumn 以及 apoc.cypher 包中所有过程和函数的限制,请使用:
-
dbms.security.procedures.unrestricted=apoc.cypher.runFirstColumn,apoc.cypher.*.
在使用 Neo4j Docker 容器时,可以通过环境变量来解除对整个 APOC 过程和函数包的限制。例如,要加载 apoc.cypher 包中的所有函数,用户必须在 Docker 运行命令中添加以下参数:
-
-e NEO4J_dbms_security_procedures_unrestricted="apoc.cypher.*"
有关加载和解除过程与函数限制的更多信息,可在 Neo4j 安全扩展指南中找到。