User-defined functions
User-defined functions are written in Java, deployed into the database and are called in the same way as any other Cypher® function.
There are two main types of functions that can be developed and used:
Type | Description | Usage | Developing |
---|---|---|---|
Scalar |
For each row the function takes parameters and returns a result. |
||
Aggregating |
Consumes many rows and produces an aggregated result. |
User-defined scalar functions
For each incoming row the function takes parameters and returns a single result.
For developing and deploying user-defined functions in Neo4j, see Extending Neo4j → User-defined functions.
This example shows how you invoke a user-defined function called join
from Cypher.
This calls the user-defined function org.neo4j.procedure.example.join()
.
MATCH (n:Member)
RETURN org.neo4j.function.example.join(collect(n.name)) AS members
members |
---|
|
Rows: 1 |
User-defined aggregation functions
Aggregating functions consume many rows and produces a single aggregated result.
This example shows how you invoke a user-defined aggregation function called longestString
from Cypher.
This calls the user-defined function org.neo4j.function.example.longestString()
.
MATCH (n:Member)
RETURN org.neo4j.function.example.longestString(n.name) AS member
member |
---|
|
Rows: 1 |