1 APOC简介
APOC即Awesome Procedures on Cypher ,是 Neo4j 最大和最广泛使用的扩展库,是Neo4j过程和函数的标准实用程序库。它包括 450 多个标准程序,提供实用程序、转换、图形更新等功能。它们得到很好的支持,并且很容易作为单独的函数运行或包含在 Cypher 查询中。
2 注意事项
由于 APOC 依赖于 Neo4j 的内部 API,因此您需要为 Neo4j 安装使用匹配的 APOC 版本。确保前两个版本号在 Neo4j 和 APOC 之间匹配。以下是APOC和Neo4j版本匹配表
3 安装流程
-
下载二进制 jar 并将其放到本地文件夹$NEO4J_HOME$/plugins下
-
将以下内容添加到$NEO4J_HOME$/conf/neo4j.conf文件中:
-
出于安全原因,默认情况下Neo4j禁用使用内部 API 。它们可以通过在$NEO4J_HOME/conf/neo4j.conf指定配置来启用)
dbms.security.procedures.unrestricted=apoc.*
-
将apoc中一般要加载的过程和函数列入白名单 (允许运行的程序列表中)
dbms.security.procedures.whitelist=apoc.coll.*,apoc.load.*
-
-
重启Neo4j,确认是否安装成功,如果返回APOC版本号,即为安装成功
RETURN apoc.version() as version
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"集合的交集。