用户定义函数

用户定义函数是用 Java 编写的,部署到数据库中,并与任何其他 Cypher® 函数一样被调用。

可以开发和使用两种主要类型的函数

类型 描述 用法 开发

标量

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

使用 UDF

扩展 Neo4j (UDF)

聚合

使用多行并生成聚合结果。

使用聚合 UDF

扩展 Neo4j (聚合 UDF)

用户定义标量函数

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

有关在 Neo4j 中开发和部署用户定义函数的信息,请参阅 扩展 Neo4j → 用户定义函数

示例 1. 调用用户定义函数

此示例显示如何从 Cypher 调用名为 join 的用户定义函数。

这将调用用户定义函数 org.neo4j.procedure.example.join()

查询
MATCH (n:Member)
RETURN org.neo4j.function.example.join(collect(n.name)) AS members
表 1. 结果
members

"John,Paul,George,Ringo"

行数:1

用户定义聚合函数

聚合函数使用多行并生成单个聚合结果。

示例 2. 调用用户定义的聚合函数

此示例显示如何从 Cypher 调用名为 longestString 的用户定义聚合函数。

这将调用用户定义函数 org.neo4j.function.example.longestString()

查询
MATCH (n:Member)
RETURN org.neo4j.function.example.longestString(n.name) AS member
表 2. 结果
member

"George"

行数:1