Release Date: 24 October 2019
Note: Graph algorithms is only compatible with Neo4j 3.5.9 and above. If you cannot update your Neo4j installation, the most recent compatible release for Neo4j 3.5.8 is

New Features

  • Weakly Connected Components: We’ve added the procedure call algo.wcc to refer to the weakly connected components algorithm, previously referred to as algo.unionFind (or Connected Components). We have deprecated algo.unionFind.
  • Multiple properties on loaded graphs: algo.graph.loadnow supports loading multiple node properties (instead of only weight) via the nodeProperties parameter.
  • Random graph generation: We’ve added a new procedure, algo.beta.graph.generate, which allows users to generate a random graph following a specific distribution with a specified number of nodes. This beta (preview) function should enable users to quickly generate test data sets to get started with the algos library.

Bug Fixes

  • Algorithm Version: the algo.version() function has been fixed so it now returns the current version of the algorithms library (instead of null).
  • Cypher projections can no longer write to the database: When a graph is loaded via a cypher projection, the graph loadre will throw an error if one of the queries tries to write to the database.


  • Louvain: We’ve aligned the seeding functionality in Louvain with the other supported community detection algorithms:
    • communityProperty is deprecated in favor of seedProperty
    • conflicting communities are resolved by choosing the smaller community id
  • Errors when loading multiple graphs with the same name: algo.graph.load will throw an exception when a graph is loaded under a name for which there already is a loaded graph. Previously, the procedure would use the alreadyLoaded flag in the result to signal that no loading happened and the named graph already existed. This was very subtle and easy to miss.