1 APOC简介

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

2 注意事项

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

3 安装流程

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

    Neo4j之APOC安装与使用样例-LMLPHP

    Neo4j之APOC安装与使用样例-LMLPHP

  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.*
      

      Neo4j之APOC安装与使用样例-LMLPHP

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

    RETURN apoc.version() as version
    

    Neo4j之APOC安装与使用样例-LMLPHP

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"集合的交集。

05-16 16:52