Skip to content

neo4j-examples/neo4j-procedure-template

5.x
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
This branch is 42 commits ahead, 2 commits behind jakewins:master.

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.

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

About

Example code for building User Defined Procedures and Functions for Neo4j

Resources

License

Stars

Watchers

Forks

Languages

  • Cypher 53.8%
  • Java 46.2%