Releases: neo4j-contrib/neo4j-apoc-procedures
APOC Release 3.1.3.7 for Neo4j 3.1.x
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().
-
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
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
, useiterateList: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
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
, useiterateList: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
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
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
APOC Release 3.1.2.5
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
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
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
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
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)