/neo4j-custom

Boilerplate code for building Procedures for Neo4j 4.0+

Primary LanguageJavaApache License 2.0Apache-2.0

Neo4j Procedure Template

This project is an example you can use to build user defined procedures, functions and aggregation functions in Neo4j. It contains two procedures, for reading and updating a full-text index.

To try this out, simply clone this repository and have a look at the source and test code (including Test-Server-Setup).

This project requires a Neo4j 4.1.x dependency.

User Defined Procedure

The user defined procedure allows you to get the incoming and outgoing relationships for a given node.

See GetRelationshipTypes.java and the GetRelationshipTypesTests.java.

MATCH (n:Person)
CALL example.getRelationshipTypes(n);

User Defined Function

The user defined function is a simple join function that joins a list of strings using a delimiter.

See Join.java and the JoinTest.java.

RETURN example.join(['A','quick','brown','fox'],' ') as sentence

User Defined Aggregation Function

The aggregation function example.last returns the last row of an aggregation.

MATCH (n:Person)
WITH n ORDER BY n.born
RETURN n.born, example.last(n) as last

See Last.java and the LastTest.java.

Building

This project uses maven, to build a jar-file with the procedure in this project, simply package the project with maven:

mvn clean package

This will produce a jar-file,target/procedure-template-1.0.0-SNAPSHOT.jar, that can be deployed in the plugin directory of your Neo4j instance.

License

Apache License V2, see LICENSE