Skip to content

Releases: neo4j-contrib/neo4j-apoc-procedures

APOC Release 3.1.3.7 for Neo4j 3.1.x

15 May 07:23
Compare
Choose a tag to compare

Thanks a lot to every APOC user for the great feedback and reporting issues. Join us on neo4j.com/slack in the #apoc channel.

Big kudos to everyone who contributed to this release: @fbiville @InverseFalcon @tomasonjo @sarmbruster @jansta @ArslanAle @bradnussbaum

and the very productive team from Larus-BA, Italy: @albertodelazzari @AngeloBusato @DanielBerton @inserpio @omarlarus

This release contains the following updates:

  • update to Neo4j 3.1.4, Procedure Compiler 1.2

Especially cool are the new conditional procedures and the many improvements in export.

New Features:

  • property record loading for warmup, apoc.warmup.run(true)

  • Added conditional cypher execution: apoc.when(pred, then-stmt[, else-stmt]), apoc.do.when(), apoc.case([pred,stmt,pred,stmt],else), and apoc.do.case().

  • Add ability to pause / resume triggers (#437) Fixes #403

  • use export config quotes in CSVWriter (#417) issue #388

  • new procedures to rename property, rename label, rename reltype (#371) Fixes #302

  • procedure apoc.math.regr implemented Issue #316

  • function apoc.text.slug (#369)

  • Cypher export now optionally creates 3 different files fixes #270 (#374)

  • allowed "optional" config param in path expander procedures (#422)

Fixes:

  • Fix for apoc.load.jdbc Also explicitely close the connection, not just the statement, should fix #418
  • Adding support for java.sql.Date and java.util.Date in JDBC to convert to String (#411)
  • Fixes #395 - Apoc.trigger.propertiesByKey adding a dynamic label based on newValue vs oldValue does not work (#434)
  • Fixes #334 - make sure that manual index operations are read-only (#412) (#429)
  • #367: fix IllegalStateException when removing properties (#401)
  • Fixes #303 - constraint issue (create before delete) with mergeNodes (#389)
  • Allowed negative time parameter to apoc.date.format() (#393)
  • ElasticSearch: more general encoding for _search fixes #372 (#373)
  • Prevent path expander termination filter from filtering below minLevel (#379)
  • MongoDB ObjectId can be packed, it will be converted to String fixes #355 (#368)
  • Util method for transaction termination checking (algo and warmup) fixes #211 (#366)
  • Fixed path expander 'limit' interaction with 'minLevel' (#363)

Documentation Updates

  • Update documentation for procedures that have converted to functions (#427)
  • Fixes #331 - missing detailed documentation for some procedures (#432)
  • Fixes #176 - Additional documentation on apoc.triggers (#431)
  • added-gephi-export-weighted-network-docs
  • Added documentation for conditional cypher execution procedures
  • Fixes #399 - Missing detailed documentation for Graph Refactoring procedures (#402)
  • fixes #187 - docs example for XML (#400)
  • Fixes #387 - add example for apoc.load.jdbcParams to docs (#390)
  • fixes #252 - docs should explain export config (#386)
  • Fixes #253 - docs statement on default config values not correct (#385)
  • Add documentation to readme for installing APOC for Neo4j Desktop so that the kernel extension is started (and configuration read). #313
  • fixes #321 apoc.json.setJsonProperty doesn't exist (#381)
  • Fixed omission of a parameter in apoc.coll.occurrences documentation. (#370)

APOC Release 3.2.0.2

03 Apr 02:36
Compare
Choose a tag to compare
APOC Release 3.2.0.2 Pre-release
Pre-release

Spring Release with many updates

See the blog post for more details

  • Update to Neo4j 3.2.0-alpha07
  • Documentation update, now uses generated includes for procedure overviews. Thanks @fbiville
  • @sarmbruster worked on automatizing the "manual" index update
  • He also added support for mixed content to apoc.load.xml,
  • and provided the apoc.test.regexGroups functions for extracting parts of regular expressions.

@InverseFalcon started his first contributions last month but already added:

  • apoc.coll functions: shuffle(), randomItem(), randomItems(), containsDuplicates(), duplicates(), duplicatesWithCount(), occurrences(), reverse()

  • apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree()

  • apoc.date functions: convert() and add()

  • apoc.algo functions: cosineSimilarity(), euclideanDistance(), euclideanSimilarity()

  • He also extended the capabilities for the apoc.path.expand procedure with new operators for filtering end nodes, limits, excluding start node from filters and more.

  • @tomasonjo submitted including a weight property as an improvement to the Gephi Streaming capability

Here are the things, I @jexp worked on:

  • improve the performance of apoc.periodic.iterate, use iterateList:true

  • Prefixing your inner statement with WITH {foo} AS foo for each return value is also no longer necessary.

  • conflicting queries, you can now for instance use retries:5

  • Added json-path support to APOCs load.json procedure and the different json functions.

  • Some bugfixes: graphml export, TTL, setting array properties, more robust startup

  • improved documentation, now there are independent versions of the docs published for the different versions.

  • Bitwise operations were turned into a function

  • Added apoc.text.format, .lpad, .rpad

  • Added new functions for creating virtual nodes and relationships.

  • Some missing procedures for updating/removing labels, properties, and relationships were also added.

  • Added support for gzipped streams for load csv and load xml

The @neo4j-contrib/larus team worked on

  • honour neo4j import restriction settings
  • handling large ElasticSearch results and scroll support
  • follow redirects for load

APOC Release 3.1.3.6

03 Apr 08:19
Compare
Choose a tag to compare

Spring Release with many updates

See the blog post for more details

  • Update to Neo4j 3.1.3 (don't use Neo4j 3.1.2)
  • Documentation update, now uses generated includes for procedure overviews. Thanks @fbiville
  • @sarmbruster worked on automatizing the "manual" index update
  • He also added support for mixed content to apoc.load.xml,
  • and provided the apoc.test.regexGroups functions for extracting parts of regular expressions.

@InverseFalcon started his first contributions last month but already added:

  • apoc.coll functions: shuffle(), randomItem(), randomItems(), containsDuplicates(), duplicates(), duplicatesWithCount(), occurrences(), reverse()

  • apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree()

  • apoc.date functions: convert() and add()

  • apoc.algo functions: cosineSimilarity(), euclideanDistance(), euclideanSimilarity()

  • He also extended the capabilities for the apoc.path.expand procedure with new operators for filtering end nodes, limits, excluding start node from filters and more.

  • @tomasonjo submitted including a weight property as an improvement to the Gephi Streaming capability

Here are the things, I @jexp worked on:

  • improve the performance of apoc.periodic.iterate, use iterateList:true

  • Prefixing your inner statement with WITH {foo} AS foo for each return value is also no longer necessary.

  • conflicting queries, you can now for instance use retries:5

  • Added json-path support to APOCs load.json procedure and the different json functions.

  • Some bugfixes: graphml export, TTL, setting array properties, more robust startup

  • improved documentation, now there are independent versions of the docs published for the different versions.

  • Bitwise operations were turned into a function

  • Added apoc.text.format, .lpad, .rpad

  • Added new functions for creating virtual nodes and relationships.

  • Some missing procedures for updating/removing labels, properties, and relationships were also added.

  • Added support for gzipped streams for load csv and load xml

The @neo4j-contrib/larus team worked on

  • honour neo4j import restriction settings
  • handling large ElasticSearch results and scroll support
  • follow redirects for load

APOC Release 3.0.8.6

03 Apr 02:15
Compare
Choose a tag to compare

Maintenance release for Neo4j 3.0.x

  • Update to Neo4j 3.0.9
  • Fix for auto-updating manual indexes

APOC Release 3.2.0.1

10 Mar 01:31
Compare
Choose a tag to compare
APOC Release 3.2.0.1 Pre-release
Pre-release

Thanks a ton for all feedback, issues and ideas.

Especially to @InverseFalcon and @sarmbruster for the contributions.

New Features

  • Upgrade to Neo4j 3.2.0-alpha06, see readme for details of changes (restricted, whitelisted procedures)
  • #156: implement automatic tracking of manual index changes
  • Updated documentation so that it's available for all 3 versions
  • Updates for apoc.periodic.iterate: iterateList:true, retries:5, automatic prefixing of inner statement
  • Added support for gzipped streams for load csv and load xml

New / Converted Functions & Procedures

  • Added new functions to apoc.coll - shuffle(), randomItem(), randomItems(). (#296)
  • turn bitwise operations into a function, fixes #309
  • Added new functions to apoc.coll - containsDuplicates(), duplicates(), duplicatesWithCount(), and occurrences() (#304)
  • Added new apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree(). (#305)
  • apoc.text.format function, lpad, rpad functions fixes #269
  • Added functions for creating virtual nodes and virtual relationships
  • Added apoc.date.convert() and apoc.date.add() (#291)
  • Added new function apoc.test.regexGroups (#254)
  • Added some more add and remove procedures for nodes and relationships fixes #220

Bugfixes

  • Fix setting collections as properties fixes #210
  • Fix #295 keys come before graph element in graphml export
  • Fixes for TTL (better isolation, logging, writability check)
  • Fixes #256 (#257) apoc.load.xmlSimple/xml for mixed content (text nodes and child elements)

APOC Release 3.1.2.5

10 Mar 06:13
Compare
Choose a tag to compare

Latest Release for Neo4j 3.1.2

Thanks a ton for all feedback, issues and ideas.

Especially to @InverseFalcon and @sarmbruster for the contributions.

New Features

  • #156: implement automatic tracking of manual index changes
  • Updated documentation so that it's available for all 3 versions
  • Updates for apoc.periodic.iterate: iterateList:true, retries:5, automatic prefixing of inner statement
  • Added support for gzipped streams for load csv and load xml

New / Converted Functions & Procedures

  • Added new functions to apoc.coll - shuffle(), randomItem(), randomItems(). (#296)
  • turn bitwise operations into a function, fixes #309
  • Added new functions to apoc.coll - containsDuplicates(), duplicates(), duplicatesWithCount(), and occurrences() (#304)
  • Added new apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree(). (#305)
  • apoc.text.format function, lpad, rpad functions fixes #269
  • Added functions for creating virtual nodes and virtual relationships
  • Added apoc.date.convert() and apoc.date.add() (#291)
  • Added new function apoc.test.regexGroups (#254)
  • Added some more add and remove procedures for nodes and relationships fixes #220

Bugfixes

  • Allow 3.1.2 server to start with APOC despite removed class
  • Fix setting collections as properties fixes #210
  • Fix #295 keys come before graph element in graphml export
  • Fixes for TTL (better isolation, logging, writability check)
  • Fixes #256 (#257) apoc.load.xmlSimple/xml for mixed content (text nodes and child elements)

APOC Release 3.1.0.4

10 Mar 06:12
Compare
Choose a tag to compare

Intermediate Release for 3.1.1 with all these changes

Thanks a ton for all feedback, issues and ideas.

Especially to @InverseFalcon and @sarmbruster for the contributions.

New Features

  • #156: implement automatic tracking of manual index changes
  • Updated documentation so that it's available for all 3 versions
  • Updates for apoc.periodic.iterate: iterateList:true, retries:5, automatic prefixing of inner statement
  • Added support for gzipped streams for load csv and load xml

New / Converted Functions & Procedures

  • Added new functions to apoc.coll - shuffle(), randomItem(), randomItems(). (#296)
  • turn bitwise operations into a function, fixes #309
  • Added new functions to apoc.coll - containsDuplicates(), duplicates(), duplicatesWithCount(), and occurrences() (#304)
  • Added new apoc.path procedures: subgraphNodes(), subgraphAll(), and spanningTree(). (#305)
  • apoc.text.format function, lpad, rpad functions fixes #269
  • Added functions for creating virtual nodes and virtual relationships
  • Added apoc.date.convert() and apoc.date.add() (#291)
  • Added new function apoc.test.regexGroups (#254)
  • Added some more add and remove procedures for nodes and relationships fixes #220

Bugfixes

  • Allow 3.1.2 server to start with APOC despite removed class
  • Fix setting collections as properties fixes #210
  • Fix #295 keys come before graph element in graphml export
  • Fixes for TTL (better isolation, logging, writability check)
  • Fixes #256 (#257) apoc.load.xmlSimple/xml for mixed content (text nodes and child elements)

APOC Release 3.0.8.5

10 Mar 01:34
Compare
Choose a tag to compare

Thanks a ton for all feedback, issues and ideas.

Especially to @sarmbruster for the contributions.

New Features

  • #156: implement automatic tracking of manual index changes
  • Updated documentation so that it's available for all 3 versions
  • Updates for apoc.periodic.iterate: iterateList:true, retries:5, automatic prefixing of inner statement
  • Added support for gzipped streams for load csv and load xml

Bugfixes

  • Fix NPE in BetweenessCentrality/PageRankWithCypher
  • Fix setting collections as properties fixes #210
  • Fix #295 keys come before graph element in graphml export
  • Fixes for TTL (better isolation, logging, writability check)
  • Fixes #256 (#257) apoc.load.xmlSimple/xml for mixed content (text nodes and child elements)

APOC Release 3.0.8.4

06 Jan 02:22
Compare
Choose a tag to compare

This release targets Neo4j 3.0.8 and later in the 3.0.x series, should also work with earlier versions after 3.0.4

Notable changes:

  • ed7a25a Add some more full text index add and remove procedures for nodes and relationships
  • 989b26a fix escaping of \ in export.cypher.* fixes #235
  • 7c5b7ea added apoc.map.fromNodes(label, property) fixes #217
  • 4cdc97c remove extra relationships from apoc.meta.graph(), quick variant from db-stats via apoc.meta.graphSample() fixes #209
  • 7a6c525 added apoc.refactor.invert(rel) to invert relationship-direction
  • 59e5234 documented apoc.json.get/setProperty added apoc.json.getPropertyMap
  • 67bdac6 Additional option parameters for apoc.index.addAllNodes (#158)
  • 2c9fc73 added new map procedures, added MapListResult for a map with list values
  • ab7afbf Added first stab at export to csv with apoc.export.csv.* #117
  • e8742a6 added apoc.date.systemTimezone() for 3.0 (#216)
  • d862f6b Make sortNodes return a list of nodes, added coll.sortMaps, fixes #213, #214
  • cbe17be added apoc.date.expire.in and added some docs to overview, should fix #196
  • 8437ece added parameters for concurrency and write-back property and logging to Algorithms
  • d138146 Fix error message für periodic iterate and commit: Caused by: java.util.IllegalFormatConversionException: d != java.lang.String

This release also contains quite a number of bugfixes and a few documentation updates.

Thanks a lot to everyone who provided feedback or sent in pull requests.

APOC Release 3.1.0.3

14 Dec 02:19
Compare
Choose a tag to compare

This is the newest release of APOC for the 3.1.x series of Neo4j, currently 3.1.0

Besides bug-fixes it contains these new procedures and functions.

  • remove extra relationships from apoc.meta.graph(), quick variant from db-stats via apoc.meta.graphSample() fixes #209
  • added apoc.map.fromNodes(label, property)
  • added apoc.refactor.invert(rel) to invert relationship-direction
  • added apoc.math.round(value, prec, mode)
  • documented apoc.json.get/setProperty added apoc.json.getPropertyMap
  • Additional option parameters for apoc.index.addAllNodes for index-configuration
  • apoc.map.mergeList([{maps}]) yield value | merges all maps in the list into one
  • apoc.map.groupBy([maps/nodes/relationships],'key') yield value | creates a map of the list keyed by the given property, with single values
  • apoc.map.groupByMulti([maps/nodes/relationships],'key') yield value | creates a map of the list keyed by the given property, with list values
  • added overview doc for apoc.text.regexp
  • Added first stab at export to csv with apoc.export.csv.*
  • Make sortNodes return a list of nodes, added coll.sortMaps
  • added apoc.date.expire.in and added some docs to overview
  • added apoc.date.systemTimezone() to retrieve the system timezone prog… (#215)