Diagnose storage performance issues

Slow storage can affect Neo4j performance, therefore we recommend using Solid State Drives in the product documentation. Benchmark your underlying system On Ubuntu or RedHat, you can use fio tool to benchmark your underlying storage. The command below will create… Read more →

Explore:  


Bulk Import / Backups into running 4.0 instances

Neo4j 4.0 allows for multiple running databases. You can use neo4j-admin import or neo4j-admin restore to import or restore a database into a new database on a running 4.0 instance. Neo4j-Admin Import Standalone Server Run the Neo4j-Admin import to create… Read more →

Explore:  


Resolve TLS certificate errors

TLS encryption is required everywhere. This is a compilation of few errors you can expect while configuring your server. openssl command is required to diagnose or manipulate the certificates. Check the permission on the folder neo4j might run as a… Read more →

Explore:  


How to configure off-heap transaction state

Warning This feature is experimental in 3.5, on by default in 4.0. Commencing with Neo4j 3.5, it is possible to store some of transactions’ data in off-heap memory. This can help to reduce GC pressure and/or prevent OOM crashes in… Read more →

Explore:  


Limiting MATCH results per row

Since LIMIT applies to the total number of rows of the query, it can’t be used in cases when matching from multiple nodes where the limit must be on match results per row. Take an example case using the Movies… Read more →

Explore:  


How to use the BI Connector on the Command Line

This article describes how to use the BI Connector integration with SQLLine. Prerequisites Ensure that you are running Neo4j server 3.5.x or 4.x, and have installed at least version 3.5.0.9 or 4.0.0.4 of the APOC library respectively. Building SQLLine Build… Read more →

Explore:  


How do I use LOAD CSV to update/set properties of existing nodes

One can use LOAD CSV to perform a bulk update to existing nodes, and create new nodes, as follows. If we have a .csv called Movies.csv and its content is: code,wysiwyg-indent3 code,wysiwyg-indent3 101,The Matrix,463420706 102,The Matrix Reloaded,738576929 103,The Matrix Revolutions,427289109 104,A… Read more →

Explore:  


Post-UNION processing

Cypher does not allow further processing of UNION or UNION ALL results, since RETURN is required in all queries of the union. Here are some workarounds. Post-UNION processing in Neo4j 4.0 With Neo4j 4.0, post-UNION processing is now possible via… Read more →

Explore:  


Running Docker as Non-Root User

When running Neo4j Docker, it will run as neo4j user inside the container. But to run docker as a different user one can specify the –user argument. Documentation has a section for running as non-root user: https://neo4j.com/docs/operations-manual/3.4/installation/docker/#docker-user but would like… Read more →

Explore:  


Using Cypher to generate Cypher statements to recreate indexes and constraints

The following can be used to extract index definitions and constraint definitions from an existing database and the resultant output can be played back on another Neo4j database. For example with the :play movies dataset as when run from the… Read more →

Explore:  


Database Compaction in 4.0 using Neo4j-admin copy

This article demonstrates using the neo4j-admin copy tool to reclaim un-used space occupied by neo4j store files. 1). Adding 100k nodes: foreach (x in range (1,100000) | create (n:testnode1 {id:x})). 2). Checking allocated ID range: MATCH (n:testnode1) RETURN ID(n) as… Read more →

Explore:  


Using the ACTUAL data type with neo4j-import

When importing data using neo4j-admin import, make sure to review the required CSV file structure and considerations before moving on. https://neo4j.com/docs/operations-manual/current/tools/import/ ACTUAL vs. String (default) or Integer: Each node in the CSV must have an :ID, which can be in… Read more →

Explore:  


Tuning GC algorithms

Introduction There are several Garbage Collection algorithms available in Java. You can find the supported JDKs in our product requirements section. We will review some of the available GCs and their main features. G1 This is the default GC algorithm… Read more →

Explore:  


Diagnosing network latency in a Causal Cluster using MTR

MTR is a simple ICMP based test combining ping and traceroute. The following demonstrates usage of the MTR trace tool to diagnose network latency and packet loss in a Causal Cluster. The tool is commonly used on Windows via the… Read more →

Explore:  


Using apt to download a specific Neo4j debian package

By default, using apt-get to install Neo4j allows you to grab the current and previous stable releases. However, if you would like to install an older version, you can specify that. For reference, the Debian repo is located here: http://debian.neo4j.org/… Read more →

Explore:  


Explanation of “Failed to update routing table with server” error

If you encounter a Failed to update routing table with server error in their $NEO4J_HOME/logs/debug.log similar to: ERROR 1 — [o4jDriverIO-5-2] LoadBalancer : Failed to update routing table. Current routing table: Ttl 1582554193442, currentTime 1582554193471, routers AddressSet=[], writers AddressSet=[], readers… Read more →

Explore:  


Creating and configuring database-local roles

Neo4j 4.0 introduced advanced security features in the form of role-based access controls, much needed, especially with the introduction of multiple database functionality. These controls can be accessed by administrators on the system database, present on every Neo4j instance. The… Read more →

Explore:  


Working with streaks in Cypher

When using Cypher for data analysis, you might have a problem where you need to identify or filter based upon some kind of streak. For example, for a sports graph, you might want to know the maximum number of consecutive… Read more →

Explore:  


What Works with the BI Connector

This article provides an overview of what third-party applications to expect the BI connector work with. Prerequisites Ensure that you are running Neo4j server 3.5.x or 4.x, and have installed at least version 3.5.0.9 or 4.0.0.4 of the APOC library… Read more →

Explore:  


Neo4j & JDBC: the Neo4j JDBC Driver vs. BI Connector

This page describes the connection between JDBC and Neo4j, and when users should use the BI Connector, vs. when they should use the Neo4j JDBC Driver. To begin with, let’s start that JDBC is a transport; that is, it is… Read more →

Explore:  


Index limitations and workarounds

In this article we discuss index providers and what limitations and workarounds there are. There are two index types in Neo4j, btree and full-text. This article target btree indexes, up until 4.0 called schema indexes. This is the normal index… Read more →

Explore:  


Using max() and min() while keeping items

The aggregation functions of max() and min() are very useful, but you can sometimes find yourself fighting against Cypher’s aggregation behavior for cases that should be simple. This often comes up when you want to calculate the max() or min()… Read more →

Explore:  


Using Python 1.7.x Driver with Neo4j 4.0

At the time of writing this article the Bolt Driver for Python has not been released for Neo4j 4.0. The v4 Python driver will not be available until the end of the first quarter of 2020. So, how do you… Read more →

Explore:  


How to use the BI Connector with Tableau Server

This article describes how to use the BI Connector integration with Tableau Server. Prerequisites Ensure that you are running Neo4j server 3.5.x or 4.x, and have installed at least version 3.5.0.9 or 4.0.0.4 of the APOC library respectively. Install BI… Read more →

Explore:  


How to use the BI Connector with Tableau Desktop

This article describes how to use the BI Connector integration with Tableau Desktop. Prerequisites Ensure that you are running Neo4j server 3.5.x or 4.x, and have installed at least version 3.5.0.9 or 4.0.0.4 of the APOC library respectively. Install BI… Read more →

Explore: