没有为此数据库实例注册名为“apoc.help”的过程

问题描述 投票:0回答:5

我已经根据github页面构建并安装了“apoc”程序(在suerver停止后,将apoc-1.0.0-SNAPSHOT.jar文件复制到plugins目录中,然后我再次启动服务器)但是当我尝试调用任何过程时,我收到一条错误消息。

例如:

$ call apoc.help('search') ;

“没有为此注册名为

apoc.help
的程序 数据库实例。请确保您拼写了程序名称 正确并且该程序已正确部署。”

我在 MacO 和 Windows 安装上都遇到过这个问题。我正在运行 Neo4j 3.0.0 作为服务器(本地端口 7474)。

我是否错过了任何设置?

谢谢, 巴巴克。

neo4j installation cypher
5个回答
12
投票

我必须手动将此行添加到 .neo4j.conf 文件中:

dbms.directories.plugins=/Applications/Neo4j\ Community\ Edition.app/Contents/Resources/app/plugins

(假设这是您放置 APOC jar 的位置),然后重新启动服务器。

(这有点令人困惑,因为管理应用程序中有一个选项可以配置此路径,但实际上似乎并未在服务器上启用插件。)


2
投票

对于 Windows 用户,它应该如下所示:

dbms.directories.plugins=c:/Program\ Files/Neo4j\ CE\ 3.0.0/plugins

假设您已在

Neo4j CE 3.0.0
安装了 Neo4j。进口


2
投票

现在(2023)程序似乎有所不同。

  1. 运行 APOC 可能需要两个文件 (https://community.neo4j.com/t5/neo4j-graph-platform/unable-to-see-some-apoc-load-functions/m-p/64154)
  2. 某些功能可能默认禁用,需要在相关数据库配置中启用,例如 dbms.security.procedures.allowlist=apoc.coll.,apoc.load.,apoc.periodic.* 为了安全起见,请考虑将其打开并在使用后再次关闭。

1
投票

我必须执行以下操作的一些组合,并于 2023 年 6 月更新:

# Create the `neo4j.conf` file and specify where plugins are
echo "server.directories.plugins=~/neo4j/plugins" > ~/neo4j/conf/neo4j.conf
# Create that plugins dir and download the latest APOC plugin file
mkdir ~/neo4j/plugins
( cd ~/neo4j/plugins && curl -O -L https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/3.5.0.17/apoc-3.5.0.17-all.jar)
# Re-start the docker container
docker-compose up -d

docker-compose 供参考:

services:
  neo4j:
    image: neo4j:latest
    container_name: 'neo4j'
    volumes:
      - '$HOME/neo4j/data:/data'
      - '$HOME/neo4j/conf/:/conf/'
      - '$HOME/neo4j/plugins:/plugins'
    ports:
      - 7474:7474
      - 7687:7687
    environment:
      - NEO4J_PLUGINS='["apoc"]'
    restart: on-failure
    networks:
        - neo4j_network
    command: neo4j

networks:
  neo4j_network:
    driver: bridge

volumes:
  dgraph:


0
投票

我看到这个错误是因为 apoc-extend 插件已启用,但 apoc 未启用,而

apoc.help
是后者的一部分,而不是前一个。

这就是我启动 neo4j 并提供

apoc.help
的方式(pwsh):

docker run --name neo4j-apoc --rm -v $neo4jDataDir`:/data -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=neo4j/qwertyuiop -e 'NEO4J_PLUGINS=["apoc","apoc-extended"]' -d neo4j

这就是它在 Bash 中运行的方式:

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\",\"apoc-extended\"\] \
    neo4j:5.13.0

可能有用的链接

© www.soinside.com 2019 - 2024. All rights reserved.