安装

本手册涵盖了 APOC 核心的文档。有关 APOC 扩展版,请参阅APOC 扩展版手册

APOC 与 Neo4j 打包在一起,可以在 $NEO4J_HOME/labs 目录中找到。

APOC

APOC 可以通过将 APOC jar 文件从 $NEO4J_HOME/labs 目录移动到 $NEO4J_HOME/plugins 目录,然后重启 Neo4j 来安装。

Neo4j Desktop

可以使用 Neo4j Desktop 安装 APOC。创建数据库后,进入 Manage 屏幕,然后点击 Plugins 标签页。在 APOC 框中点击 Install,然后等待直到“APOC”旁边出现绿色对勾。

desktop apoc

Neo4j 服务器

由于 APOC 依赖于 Neo4j 的内部 API,您需要为您的 Neo4j 安装使用匹配的 APOC 版本。请确保 Neo4j 和 APOC 的前两位版本号匹配

请访问 最新版本,下载 Neo4j 2025.05 的二进制 jar 文件,并将其放入您的 $NEO4J_HOME/plugins 文件夹。

您可以在此处找到所有版本

将 jar 文件移动到插件文件夹后,您必须使用 neo4j restart 命令重启 Neo4j。

APOC 采用一致的版本命名方案:<neo4j-version>.<apoc> 版本。版本号末尾的 <apoc> 部分将随每个 APOC 版本的发布而递增。

版本兼容性矩阵解释了 Neo4j 和 APOC 版本之间的映射关系

APOC 版本 Neo4j 版本

2025.05.0

2025.05.0 (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.8

5.26.8 (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 警告:

The apoc version (<APOC_VERSION>) and the Neo4j DBMS versions [NEO4J_VERSION] are incompatible.
The two first numbers of both versions must be the same.

Docker

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

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

以下命令在 Docker 容器中运行 Neo4j 2025.05 并使用最新版本的 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:2025.05

运行此命令后,我们应该在输出中看到以下两行

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/2025.05.0/apoc-2025.05.0-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/2025.05.0/apoc-2025.05.0-core.jar
popd
docker run --rm -e NEO4J_AUTH=none -p 7474:7474 -v $PWD/plugins:/plugins -p 7687:7687 neo4j:2025.05

如果您想向 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:2025.05

要使用 Powershell 和 Docker 安装 APOC,需要正确的引用方式

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

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

加载与解除限制

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

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

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

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

出于安全原因,默认情况下禁用使用内部 API 的过程和函数。在这种情况下,也建议使用最小权限原则,并且仅解除对确定会使用的那些过程和函数的限制。

需要解除限制的过程和函数可以通过数据库配置设置 dbms.security.procedures.unrestricted 指定,该设置位于 conf/neo4j.conf 文件中。例如,要解除对 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 核心 jar 中,但可以作为单独的 jar 文件添加,如此处所述。如果未包含额外的依赖项,调试日志文件 (debug.log) 中将显示警告,如果不需要相应的功能,则可以忽略这些警告。此类警告的示例如下:

 Failed to load `apoc.util.s3.S3URLConnection`
© . All rights reserved.