Neo4J在导入csv文件数据时,用cypher只能写死节点标签,无法根据文件内容动态创建标签。这时,我们可以使用APOC插件来帮我们实现。
Neo4J桌面版
在创建数据库之后,通过进入管理页面,然后进入 Plugins 选项卡,可以在 Neo4j 桌面上安装 APOC。单击 APOC 框中的 Install,然后等待,直到在“ APOC”附近看到一个绿色复选标记。
Neo4j服务器版
拷贝apoc 插件jar文件到$NEO4J_HOME/plugins目录下,然后重启Neo4j使插件生效。
插件下载地址:https://github.com/neo4j/apoc/releases/。注意,apoc插件版本需要和neo4j数据库版本匹配。APOC 使用一致的版本控制方案: < neo4j-version > .< apoc> 版本。随后的 < apoc > 部分版本号将随着每次 apoc 发布而增加。对应关系如下:
Docker版本
apoc插件可以通过Neo4j Docker镜像的NEO4J_PLUGINS 环境变量安装。如果使用这个环境变量,将从 Docker 镜像复制 APOC 插件文件并在运行时进行配置。docker安装脚本:
docker run \
-p 7474:7474 -p 7687:7687 \
--name neo4j-apoc \
-e apoc.export.file.enabled=true \
-e apoc.import.file.enabled=true \
-e apoc.import.file.use_neo4j_config=true \
-e NEO4J_PLUGINS=\[\"apoc\"\] \
neo4j:5.4.0
权限控制
APOC 库包含数百个存储过程和函数。建议不要将所有这些都加载到 dbms 中,而是使用最小特权原则。这个原则规定只加载执行用户工作负载所需的过程和函数。
可以使用位于安装目录 conf/neo4j.conf 文件中的数据库配置设置 dbms.security.procures.allowlist 指定应该加载的过程和函数。例如,要加载 apoc.math.maxInt 和 apoc.rel 包中的所有函数,使用:
dbms.security.procedures.allowlist=apoc.math.maxInt,apoc.rel.*.