Neo4j之APOC安装与使用样例

1 APOC简介

APOC即Awesome Procedures on Cypher ,是 Neo4j 最大和最广泛使用的扩展库,是Neo4j过程和函数的标准实用程序库。它包括 450 多个标准程序,提供实用程序、转换、图形更新等功能。它们得到很好的支持,并且很容易作为单独的函数运行或包含在 Cypher 查询中。

2 注意事项

由于 APOC 依赖于 Neo4j 的内部 API,因此您需要为 Neo4j 安装使用匹配的 APOC 版本。确保前两个版本号在 Neo4j 和 APOC 之间匹配。以下是APOC和Neo4j版本匹配表

apoc versionneo4j version
4.4.0.14.4.0 (4.3.x)
4.3.0.44.3.7 (4.3.x)
4.2.0.94.2.11 (4.2.x)
4.1.0.104.1.11 (4.1.x)
4.0.0.184.0.12 (4.0.x)
3.5.0.153.5.30 (3.5.x)
3.4.0.83.4.18 (3.4.x)
3.3.0.43.3.9 (3.3.x)
3.2.3.63.2.14 (3.2.x)
3.1.3.93.1.9 (3.1.x)
3.0.8.63.0.12 (3.0.x)
3.5.0.03.5.0-beta01
3.4.0.23.4.5
3.3.0.33.3.5
3.2.3.53.2.3
3.1.3.83.1.5

3 安装流程

  1. 下载二进制 jar 并将其放到本地文件夹$NEO4J_HOME$/plugins下

    image-20230516113738678

    image-20230516113758133

  2. 将以下内容添加到$NEO4J_HOME$/conf/neo4j.conf文件中:

    1. 出于安全原因,默认情况下Neo4j禁用使用内部 API 。它们可以通过在$NEO4J_HOME/conf/neo4j.conf指定配置来启用)

      dbms.security.procedures.unrestricted=apoc.*
      
    2. 将apoc中一般要加载的过程和函数列入白名单 (允许运行的程序列表中)

      dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*
      

      image-20230516113945423

  3. 重启Neo4j,确认是否安装成功,如果返回APOC版本号,即为安装成功

    RETURN apoc.version() as version
    

    image-20230516114102459

4 使用apoc样例

cypher apoc中的并集函数

在APOC库中,可以使用apoc.coll.union函数执行集合的并集操作。apoc.coll.union函数用于将两个或多个集合合并为一个包含所有元素的新集合。

以下是使用apoc.coll.union函数执行集合并集操作的示例:

cypherCopy codeMATCH (p1:Person {name: 'John'})
MATCH (p2:Person {name: 'Alice'})
RETURN apoc.coll.union(p1.hobbies, p2.hobbies) AS mergedHobbies

在上述示例中,我们使用MATCH子句分别匹配名为"John"和"Alice"的"Person"节点。然后,在RETURN子句中,我们使用apoc.coll.union函数将这两个节点的"hobbies"集合属性合并为一个新的集合,并将结果命名为"mergedHobbies"。

查询结果将返回一个包含合并后兴趣爱好的列表,即这两个"Person"节点的"hobbies"集合的并集。

cypher apoc中的交集函数

在Cypher中,可以使用INTERSECTION关键字来执行集合的交集操作。INTERSECTION关键字用于找到两个或多个集合之间的共同元素。

以下是使用INTERSECTION关键字执行集合交集操作的示例:

cypherCopy codeMATCH (p1:Person {name: 'John'})
MATCH (p2:Person {name: 'Alice'})
RETURN apoc.coll.intersection(p1.hobbies, p2.hobbies) AS commonHobbies

在上述示例中,我们使用MATCH子句分别匹配名为"John"和"Alice"的"Person"节点。然后,在RETURN子句中,我们使用apoc.coll.intersection函数找到这两个节点的"hobbies"集合属性之间的共同元素,并将结果命名为"commonHobbies"。

查询结果将返回一个包含共同兴趣爱好的列表,即这两个"Person"节点的"hobbies"集合的交集。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值