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 中所有可用函数的完整列表,包括用户自定义函数。