Neo4j 自定义代码
用户自定义过程和用户自定义函数是通过编写自定义代码来扩展 Neo4j 的机制,这些代码可以直接在 Cypher 中调用。这是扩展 Neo4j 的首选方式。
过程和函数的使用案例包括:
-
提供 Cypher 中不可用的功能访问。
-
提供对第三方系统的访问。
-
执行全局图操作,例如统计连通分量或寻找密集节点。
-
表达难以使用 Cypher 声明式方式实现的过程性操作。
过程和函数用 Java 编写并编译为 JAR 文件。将该 JAR 文件放入每个独立或集群服务器的 plugins 目录即可部署到数据库。有关 plugins 目录的位置,请参见 Operations Manual → Default file locations。必须在每台服务器上重启数据库,才能加载新的过程和函数。
过程和函数可以接受参数并返回结果。此外,过程还可以对数据库执行写操作。
| 类型 | 描述 | 语法 | 读/写 | 基数 |
|---|---|---|---|---|
|
对每一行,过程接收参数并返回多个结果。 |
|
允许更新。 |
基数的变化方式类似于 |
|
对每一行,函数接收参数并返回单个结果。 |
|
只读。 |
保持基数不变,一对一。 |
|
消耗多行数据并产生聚合结果。 |
|
只读。 |
降低基数,将多个结果归约为一个。 |
Neo4j 还随附了大量内置过程和函数。
可用的内置过程因版本和模式而异,详见 Operations Manual → Procedures。运行 SHOW PROCEDURES 可显示 Neo4j DBMS 中的全部过程列表,包括用户自定义过程。
内置函数在 Cypher Manual → Functions 中有说明。运行 SHOW FUNCTIONS 可显示 Neo4j DBMS 中的全部函数列表,包括用户自定义函数。