Neo4j之APOC安装与使用样例

1 APOC简介

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

2 注意事项

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

apoc version neo4j version
4.4.0.1 4.4.0 (4.3.x)
4.3.0.4 4.3.7 (4.3.x)
4.2.0.9 4.2.11 (4.2.x)
4.1.0.10 4.1.11 (4.1.x)
4.0.0.18 4.0.12 (4.0.x)
3.5.0.15 3.5.30 (3.5.x)
3.4.0.8 3.4.18 (3.4.x)
3.3.0.4 3.3.9 (3.3.x)
3.2.3.6 3.2.14 (3.2.x)
3.1.3.9 3.1.9 (3.1.x)
3.0.8.6 3.0.12 (3.0.x)
3.5.0.0 3.5.0-beta01
3.4.0.2 3.4.5
3.3.0.3 3.3.5
3.2.3.5 3.2.3
3.1.3.8 3.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"集合的交集。

猜你喜欢

转载自blog.csdn.net/twi_twi/article/details/130703688
今日推荐