Neo4j 自定义代码

用户定义的过程用户定义的函数是允许您通过编写自定义代码来扩展 Neo4j 的机制,该代码可以直接从 Cypher 调用。这是扩展 Neo4j 的首选方法。

过程和函数的用例示例包括

  • 提供对 Cypher 中不可用的功能的访问。

  • 提供对第三方系统的访问。

  • 执行图全局操作,例如计算连通分量或查找密集节点。

  • 表达用 Cypher 声明式难以表达的过程操作。

过程和函数是用 Java 编写的,并编译成 JAR 文件。通过将该 JAR 文件放到每个独立或集群服务器上的plugins目录中,将它们部署到数据库。有关plugins目录的位置,请参阅操作手册 → 默认文件位置。必须在每台服务器上重新启动数据库才能接收新的过程和函数。

过程和函数可以接收参数并返回结果。此外,过程可以对数据库执行写入操作。

类型 描述 语法 读/写 基数

过程

对于每一行,过程接收参数并返回多个结果。

CALL abc(...)

允许更新。

类似于MATCH子句更改基数(0、1 或多个)。

标量函数

对于每一行,函数接收参数并返回单个结果。

abc(...)

只读。

保持基数,一一对应。

聚合函数

消耗多行并生成聚合结果。

WITH abc(...)

只读。

降低基数,多个减少为一个。

Neo4j 还捆绑了一系列内置过程和函数。

可用的内置过程因版本和模式而异,如操作手册 → 过程中所述。运行SHOW PROCEDURES将显示您 Neo4j DBMS 中可用的所有过程,包括用户定义的过程。

内置函数在Cypher 手册 → 函数中进行了描述。运行SHOW FUNCTIONS将显示您 Neo4j DBMS 中可用的所有函数,包括用户定义的函数。