Title: | Querying and Managing 'Neo4J' Databases in 'R' |
---|---|
Description: | Sends queries to a specified 'Neo4J' graph database, capturing results in a dataframe where appropriate. Other useful functions for the importing and management of data on the 'Neo4J' server and basic local server admin. |
Authors: | Keith McNulty [cre, aut, cph] , Liz Romero [ctb] |
Maintainer: | Keith McNulty <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.1.2.9000 |
Built: | 2024-11-18 05:55:02 UTC |
Source: | https://github.com/keithmcnulty/neo4jshell |
Imports a csv or a compressed file to Neo4J import folder.
neo4j_import( local = FALSE, con = list(address = NULL, uid = NULL, pwd = NULL), source = NULL, import_dir = "import", unzip_path = "unzip", gunzip_path = "gunzip", tar_path = "tar" )
neo4j_import( local = FALSE, con = list(address = NULL, uid = NULL, pwd = NULL), source = NULL, import_dir = "import", unzip_path = "unzip", gunzip_path = "gunzip", tar_path = "tar" )
local |
Logical indicating whether import is to a locally hosted or a remotely hosted server. |
con |
If remotely hosted server, list containing three objects: address, uid, pwd as character strings providing connection to the Neo4J server. uid and pwd must be for an account on the server with appropriate permissions. |
source |
Character string of local path to the csv, zip or tar.gz compressed csv file to be imported |
import_dir |
Character string of full path to the Neo4J import directory |
unzip_path |
Path to unzip on the local or remote server to be passed to the system command if necessary. |
gunzip_path |
Path to gunzip on the local or remote server to be passed to the system command following import if necessary. |
tar_path |
Path to tar on the local or remote server to be passed to the system command following import if necessary. |
System messages confirming success or error. zip or tar files will be removed after import and decompression.
# import zip to local import directory, with zip in the local system PATH variable write.csv(mtcars, "mtcars.csv") zip("mtcars.zip", "mtcars.csv") fs::dir_create("import") neo4j_import(local = TRUE, source = "mtcars.zip") fs::file_delete("mtcars.zip") fs::file_delete("mtcars.csv") fs::dir_delete("import")
# import zip to local import directory, with zip in the local system PATH variable write.csv(mtcars, "mtcars.csv") zip("mtcars.zip", "mtcars.csv") fs::dir_create("import") neo4j_import(local = TRUE, source = "mtcars.zip") fs::file_delete("mtcars.zip") fs::file_delete("mtcars.csv") fs::dir_delete("import")
Execute a query string in Neo4J using cypher-shell and capture output
neo4j_query( con = list(address = NULL, uid = NULL, pwd = NULL), qry = NULL, shell_path = "cypher-shell", database = NULL, encryption = c("default", "true", "false") )
neo4j_query( con = list(address = NULL, uid = NULL, pwd = NULL), qry = NULL, shell_path = "cypher-shell", database = NULL, encryption = c("default", "true", "false") )
con |
List containing three objects: bolt address, uid, pwd as character strings providing connection to the Neo4J server |
qry |
Character string of the query or queries to be sent to Neo4J. Read queries should be single queries. |
shell_path |
If cypher-shell is not in the PATH system variable, the full local path to cypher-shell executable. |
database |
The name of the database if other than the default database. (For multi-tenancy installations). |
encryption |
Passes encryption argument to cypher-shell if necessary. Older versions of cypher-shell may require 'true' or 'false' to be passed. |
A dataframe of results if the read query is successful. A text string if an error is encountered. Write queries will return a zero length response if successful. If multiple read queries were submitted, only the results of the final query will be returned.
# if neo4j exists, start the local server, give it a moment to fire up, and run a query if (nzchar(Sys.which("neo4j"))) { neo4j_start() Sys.sleep(2) graph <- list(address = "bolt://localhost:7687", uid = "neo4j", pwd = "password") neo4j_query(con = graph, qry = "MATCH (n) RETURN (n)") }
# if neo4j exists, start the local server, give it a moment to fire up, and run a query if (nzchar(Sys.which("neo4j"))) { neo4j_start() Sys.sleep(2) graph <- list(address = "bolt://localhost:7687", uid = "neo4j", pwd = "password") neo4j_query(con = graph, qry = "MATCH (n) RETURN (n)") }
Restart a local Neo4J database
neo4j_restart(neo4j_path = "neo4j")
neo4j_restart(neo4j_path = "neo4j")
neo4j_path |
Path to the Neo4J executable (usually in the bin directory of the Neo4J installation) |
System messages
# if neo4j exists, restart local graph with neo4j executable in the system PATH variable if (nzchar(Sys.which("neo4j"))) { neo4j_restart() }
# if neo4j exists, restart local graph with neo4j executable in the system PATH variable if (nzchar(Sys.which("neo4j"))) { neo4j_restart() }
Remove subdirectory and all its contents from the Neo4J import directory
neo4j_rmdir( local = FALSE, con = list(address = NULL, uid = NULL, pwd = NULL), dir = NULL, import_dir = "import" )
neo4j_rmdir( local = FALSE, con = list(address = NULL, uid = NULL, pwd = NULL), dir = NULL, import_dir = "import" )
local |
Logical indicating whether import is to a locally hosted or remotely hosted server. |
con |
If remotely hosted server, list containing three objects: address, uid, pwd as character strings providing connection to the Neo4J server. uid and pwd must be for an account on the server with appropriate permissions. |
dir |
Character string of the Neo4J import subdirectory name to be deleted. |
import_dir |
Character string of path to the Neo4J import directory. |
A success message if successful. A error message otherwise.
# remove a subdirectory and all its contents from the local import directory fs::dir_create("import/data") fs::file_create("import/data/data.csv") neo4j_rmdir(local = TRUE, dir = "data", import_dir = "import") fs::dir_delete("import")
# remove a subdirectory and all its contents from the local import directory fs::dir_create("import/data") fs::file_create("import/data/data.csv") neo4j_rmdir(local = TRUE, dir = "data", import_dir = "import") fs::dir_delete("import")
Remove files from the Neo4J import directory
neo4j_rmfiles( local = FALSE, con = list(address = NULL, uid = NULL, pwd = NULL), files = NULL, import_dir = "import" )
neo4j_rmfiles( local = FALSE, con = list(address = NULL, uid = NULL, pwd = NULL), files = NULL, import_dir = "import" )
local |
Logical indicating whether import is to a locally hosted or remotely hosted server. |
con |
If remotely hosted server, list containing three objects: address, uid, pwd as character strings providing connection to the Neo4J server. uid and pwd must be for an account on the server with appropriate permissions. |
files |
Character vector of file names to be removed. |
import_dir |
Character string of path to the Neo4J import directory. |
A success message if successful. An error message otherwise.
# remove file from local import directory fs::dir_create("import") fs::file_create("import/data.csv") neo4j_rmfiles(local = TRUE, files = "data.csv", import_dir = "import") fs::dir_delete("import")
# remove file from local import directory fs::dir_create("import") fs::file_create("import/data.csv") neo4j_rmfiles(local = TRUE, files = "data.csv", import_dir = "import") fs::dir_delete("import")
Start a local Neo4J database
neo4j_start(neo4j_path = "neo4j")
neo4j_start(neo4j_path = "neo4j")
neo4j_path |
Path to the Neo4J executable (usually in the bin directory of the Neo4J installation) |
System messages
# if neo4j exists, start local graph on with neo4j executable in the system PATH variable if (nzchar(Sys.which("neo4j"))) { neo4j_start() }
# if neo4j exists, start local graph on with neo4j executable in the system PATH variable if (nzchar(Sys.which("neo4j"))) { neo4j_start() }
Check status of a local Neo4J database
neo4j_status(neo4j_path = "neo4j")
neo4j_status(neo4j_path = "neo4j")
neo4j_path |
Path to the Neo4J executable (usually in the bin directory of the Neo4J installation) |
System messages
# if neo4j exists, check status local graph with neo4j executable in the system PATH variable if (nzchar(Sys.which("neo4j"))) { neo4j_status() }
# if neo4j exists, check status local graph with neo4j executable in the system PATH variable if (nzchar(Sys.which("neo4j"))) { neo4j_status() }
Stop a local Neo4J database
neo4j_stop(neo4j_path = "neo4j")
neo4j_stop(neo4j_path = "neo4j")
neo4j_path |
Path to the Neo4J executable (usually in the bin directory of the Neo4J installation) |
System messages
# if neo4j exists, stop local graph with neo4j executable in the system PATH variable if (nzchar(Sys.which("neo4j"))) { neo4j_stop() }
# if neo4j exists, stop local graph with neo4j executable in the system PATH variable if (nzchar(Sys.which("neo4j"))) { neo4j_stop() }
Wipe a complete local graph database in Neo4J
neo4j_wipe(database = NULL, data_path = NULL)
neo4j_wipe(database = NULL, data_path = NULL)
database |
Name of local graph database directory to wipe. |
data_path |
Path to the local Neo4J data directory |
Success or error message
# wipe database directory fs::dir_create("data/databases/foo") neo4j_wipe(database = "foo", data_path = "data") fs::dir_delete("data")
# wipe database directory fs::dir_create("data/databases/foo") neo4j_wipe(database = "foo", data_path = "data") fs::dir_delete("data")