安装

本手册涵盖了 APOC Core 的文档。有关 APOC Extended 的内容,请前往 APOC Extended 手册

APOC 已随 Neo4j 一起打包,位于 $NEO4J_HOME/labs 目录下。

APOC

安装 APOC 的方法是:将 APOC jar 文件从 $NEO4J_HOME/labs 目录移动到 $NEO4J_HOME/plugins 目录,然后重启 Neo4j。

Neo4j Desktop

在使用 Neo4j Desktop 创建数据库后,可以通过前往 Manage(管理)界面,然后进入 Plugins(插件)选项卡来安装 APOC。点击 APOC 框中的 Install(安装),等待直到在“APOC”旁边看到绿色复选标记即可。

desktop 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.03.1 (2026.02.x)

2026.02.2

2026.02.2 (2026.02.x)

2026.01.3

2026.01.3 (2026.01.x)

2025.12.1

2025.12.1 (2025.12.x)

2025.11.2

2025.11.2 (2025.11.x)

2025.10.1

2025.10.1 (2025.10.x)

2025.09.0

2025.09.0 (2025.09.x)

2025.08.0

2025.08.0 (2025.08.x)

2025.07.1

2025.07.1 (2025.07.x)

2025.06.2

2025.06.2 (2025.06.x)

2025.05.1

2025.05.1 (2025.05.x)

2025.04.0

2025.04.0 (2025.04.x)

2025.03.0

2025.03.0 (2025.03.x)

2025.02.0

2025.02.0 (2025.02.x)

2025.01.0

2025.01.0 (2025.01.x)

5.26.24

5.26.24 (5.26.x)

点击查看更早的 APOC 发行版
表 1. 4.4 和 5.x APOC 发行版
APOC 版本 Neo4j 版本

5.25.1

5.25.1 (5.25.x)

5.24.0

5.24.0 (5.24.x)

5.23.0

5.23.0 (5.23.x)

5.22.0

5.22.0 (5.22.x)

5.21.0

5.21.0 (5.21.x)

5.20.0

5.20.0 (5.20.x)

5.19.0

5.19.0 (5.19.x)

5.18.0

5.18.0 (5.18.x)

5.17.1

5.17.0 (5.17.x)

5.16.1

5.16.0 (5.16.x)

5.15.1

5.15.0 (5.15.x)

5.14.0

5.14.0 (5.14.x)

5.13.0

5.13.0 (5.13.x)

5.12.0

5.12.0 (5.12.x)

5.11.0

5.11.0 (5.11.x)

5.10.1

5.10.0 (5.10.x)

5.9.0

5.9.0 (5.9.x)

5.8.0

5.8.0 (5.8.x)

5.7.0

5.7.0 (5.7.x)

5.6.0

5.6.0 (5.6.x)

5.5.0

5.5.0 (5.5.x)

5.4.1

5.4.0 (5.4.x)

5.3.0

5.3.0 (5.3.x)

5.2.1

5.2.0 (5.2.x)

5.1.0

5.1.0 (5.1.x)

5.0.0

5.0.0 (5.0.x)

4.4.0.24

4.4.0 (4.4.x)

如果启动时检测到的 APOC jar 与 Neo4j 版本不兼容,则 neo4j.log 中会出现 log.warn 警告。

Docker

可以通过 NEO4J_PLUGINS 环境变量将 APOC 用于 Neo4j Docker 镜像。如果使用了此环境变量,APOC 插件文件将在运行时从 Docker 镜像中复制并配置。

此功能旨在方便在开发环境中使用 APOC,但不建议在生产环境中使用。

以下命令在 Docker 容器中运行 Neo4j 2026.03,并包含最新版本的 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 的数据卷提供。

以下步骤将 APOC 库下载到 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,需要正确的引号引用

-e 'NEO4JLABS_PLUGINS=[\"apoc\"]'

请注意单引号和转义双引号的使用。

加载与解除限制

APOC 库包含数百个过程和函数。不建议将所有这些内容加载到 dbms 中,而应遵循最小权限原则。该原则规定,仅应加载执行用户工作负载所需的过程和函数。

应加载的过程和函数可以通过 conf/neo4j.conf 文件中的数据库配置设置 dbms.security.procedures.allowlist 来指定。例如,要加载 apoc.math.maxIntapoc.rel 包中的所有函数,请使用:

  • dbms.security.procedures.allowlist=apoc.math.maxInt,apoc.rel.*.

dbms.security.procedures.allowlist 的默认值是加载所有过程和函数。因此,建议使用所需的最少过程列表来覆盖此设置。如果不需要 APOC 功能,则建议完全移除 APOC 插件。

出于安全原因,使用内部 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 安全扩展指南中找到。

附加依赖项

某些功能需要额外的 jar 才能使用。这包括使用以下服务时的加载导出数据:

  • Amazon S3 (s3://<path>)

  • Apache Hadoop (hdfs://<path>)

  • Google Cloud Storage (gs://<path>)

这些依赖项并没有包含在 APOC Core jar 中,但可以按照此处的说明添加为单独的 jar 文件。如果未包含额外的依赖项,调试日志文件 (debug.log) 中会出现警告;如果不需要相应的功能,可以忽略这些警告。此类警告的一个示例如下:

 Failed to load `apoc.util.s3.S3URLConnection`