Neo4j 定制代码
用户自定义过程和用户自定义函数是允许您通过编写定制代码来扩展 Neo4j 的机制,这些代码可以直接从 Cypher 调用。这是扩展 Neo4j 的首选方式。
过程和函数的使用案例示例包括
-
提供 Cypher 中不可用的功能访问。
-
提供对第三方系统的访问。
-
执行图全局操作,例如计算连接组件或查找密集节点。
-
表达难以用 Cypher 声明性表示的程序操作。
过程和函数用 Java 编写并编译成 JAR 文件。通过将 JAR 文件放置到每个独立或集群服务器上的 plugins 目录中,即可将其部署到数据库。有关 plugins 目录的位置,请参阅操作手册 → 默认文件位置。必须重启每个服务器上的数据库才能识别新的过程和函数。
过程和函数可以接受参数并返回结果。此外,过程可以对数据库执行写入操作。
类型 | 描述 | 语法 | 读/写 | 基数 |
---|---|---|---|---|
|
对于每一行,过程接受参数并返回多个结果。 |
|
允许更新。 |
类似于 |
|
对于每一行,函数接受参数并返回单个结果。 |
|
只读。 |
保持基数,一对一。 |
|
消费多行并生成聚合结果。 |
|
只读。 |
减少基数,多对一。 |
Neo4j 还捆绑了许多内置过程和函数。
可用的内置过程因版本和模式而异,如操作手册 → 过程中所述。运行 SHOW PROCEDURES
会显示 Neo4j DBMS 中所有可用过程的完整列表,包括用户自定义过程。
内置函数在Cypher 手册 → 函数中有所描述。运行 SHOW FUNCTIONS
会显示 Neo4j DBMS 中所有可用函数的完整列表,包括用户自定义函数。