The function neo4j_query()
can be used to send
a query to a local or remote Neo4J server. This function uses
cypher-shell
to send the query to Neo4J, and so the
cypher-shell
executable needs to be installed and available
locally. See the README
file for further information on
configuration of the cypher-shell
executable.
neo4j_query()
takes the following arguments:
con
should be a list containing three elements:
address
, which should be the bolt address of the Neo4J
server, and uid
and pwd
as login
credentialsqry
should be a character string representing the query
to be sent to Neo4Jshell_path
should be the full path to the
cypher-shell
executable. The default value assumes that
cypher-shell
is already in the system path. Use
path.expand()
if necessary.database
specifies the database to be queried if not
the default database. (For multitenancy Neo4J installations).encryption
is the encryption option passed to
cypher-shell
. This may be required as explicitly
'true'
or 'false'
for older
installations.Example, assuming a local Neo4J instance running the movies graph:
library(neo4jshell)
neo4j_local <- list(address = "bolt://localhost", uid = "neo4j", pwd = "password")
CQL <- 'MATCH (p1:Person {name: "Kevin Bacon"})-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(p2:Person)
RETURN p2.name AS Name, m.title AS Title'
cypher_path <- path.expand("~/neo4j-community-4.0.4/bin/cypher-shell")
neo4j_query(con = neo4j_local, qry = CQL, shell_path = cypher_path)
This query should return this dataframe:
#> Name Title
#> 1 Ron Howard Frost/Nixon
#> 2 Rob Reiner A Few Good Men
#> 3 Ron Howard Apollo 13
neo4j_query()
accepts multiple query statements
separated by ;
. The function returns one of the
following:
Paths to executable files that are provided as arguments to functions
may need to be provided with appropriate extensions (eg
cypher-shell.bat
).