Neo4j APOC-01-图数据库 apoc 插件安装 neo4j on windows10
Neo4j APOC-03-图数据库 apoc 实战使用使用
Neo4j APOC-04-图数据库 apoc 实战使用使用 apoc.path.spanningTree 最小生成树
安装 Neo4j 的 APOC 插件的步骤相对简单,具体取决于你使用的是哪种 Neo4j 版本(例如 Neo4j Desktop、Neo4j Aura 或 Neo4j 服务器)。
以下是不同环境下安装 APOC 插件的步骤:
Neo4j Desktop 是一个桌面版的 Neo4j 安装工具,安装和管理 APOC 插件非常简单。
发现不太行,一直安装无响应。
对于自托管的 Neo4j 服务器,安装 APOC 插件需要手动操作。
你需要将 APOC 插件文件放入 Neo4j 的插件目录,并修改配置文件来启用它。
参考文档:https://neo4j.com/docs/apoc/5/overview/
CALL dbmcnblogs.components() YIELD name, versions
RETURN name, versions;
结果:
╒══════════════╤══════════╕
│name │versions │
╞══════════════╪══════════╡
│"Neo4j Kernel"│["5.12.0"]│
└──────────────┴──────────┘
我的 neo4j 版本是 5.12.0,对应的版本可以在文档查看
对应的版本为:
https://github.com/neo4j/apoc/releases/tag/5.12.0
将 APOC 插件复制到 Neo4j 插件目录:
apoc-x.x.x-all.jar
文件复制到 Neo4j 的 plugins
目录。默认路径:
/var/lib/neo4j/plugins/
C:Program FilesNeo4jneo4j-community-x.x.xplugins
我的本地是:
C:Usersdh.Neo4jDesktoprelate-datadbmssdbms-95030949-1290-4c0a-867e-fd9f9aac13d6plugins
neo4j.conf
。这个文件通常位于 conf
目录中,路径类似于:
/etc/neo4j/neo4j.conf
或 /var/lib/neo4j/conf/neo4j.conf
C:Program FilesNeo4jneo4j-community-x.x.xconfneo4j.conf
比如我的是在 :
C:Usersdh.Neo4jDesktoprelate-datadbmssdbms-95030949-1290-4c0a-867e-fd9f9aac13d6conf
在配置文件中添加以下行,启用 APOC 插件:
dbms.security.procedures.unrestricted=apoc.*
dbms.security.procedures.allowlist=apoc.*
这里我加了这两个,如果有多个,逗号隔开。
启动的时候失败了,发现以前有这个配置,改一下:
dbms.security.procedures.unrestricted=jwt.security.*,apoc.*
重启 Neo4j:
sudo systemctl restart neo4j
验证安装:
RETURN apoc.version()
返回
"5.12.0"
我们不能到这里就结束了,我们入门体验一下。
// Create nodes for people
CREATE (alice:Person {name: 'Alice', age: 30}),
(bob:Person {name: 'Bob', age: 25}),
(carol:Person {name: 'Carol', age: 35}),
(dave:Person {name: 'Dave', age: 40});
创建关系
// 假设已经有了 Person 节点
MATCH (alice:Person {name: 'Alice'}), (bob:Person {name: 'Bob'})
CREATE (alice)-[:FRIEND]->(bob);
// 创建更多的关系
MATCH (bob:Person {name: 'Bob'}), (carol:Person {name: 'Carol'})
CREATE (bob)-[:FRIEND]->(carol);
MATCH (alice:Person {name: 'Alice'}), (carol:Person {name: 'Carol'})
CREATE (alice)-[:FRIEND]->(carol);
MATCH (carol:Person {name: 'Carol'}), (dave:Person {name: 'Dave'})
CREATE (carol)-[:FRIEND]->(dave);
CALL apoc.help('') YIELD name
RETURN name
查看所有的方法。
apoc.path.expand
参数签名如下:
startNode
:起始节点relFilter
:关系类型过滤器labelFilter
:标签过滤器minDepth
:最小深度maxDepth
:最大深度在你的查询中,你缺少了 labelFilter
参数。根据你提供的查询,你应该添加一个空字符串 ''
作为 labelFilter
参数,如下所示:
MATCH (start:Person {name: 'Alice'})
CALL apoc.path.expand(start, 'FRIEND', '', 1, 1) YIELD path
RETURN path;
这里,我将 minDepth
设置为1,maxDepth
设置为5,这意味着你将从Alice开始,沿着 'FRIEND' 关系类型,寻找1到1跳的路径。
labelFilter
参数设置为空字符串,表示不对节点标签进行过滤。
结果:
╒══════════════════════════════════════════════════════════════════════╕
│path │
╞══════════════════════════════════════════════════════════════════════╡
│(:Person {name: "Alice",age: 30})-[:FRIEND]->(:Person {name: "Carol",a│
│ge: 35}) │
├──────────────────────────────────────────────────────────────────────┤
│(:Person {name: "Alice",age: 30})-[:FRIEND]->(:Person {name: "Bob",age│
│: 25}) │
└──────────────────────────────────────────────────────────────────────┘
参与评论
手机查看
返回顶部