У меня есть файл сценария шифра, и я хотел бы запустить его напрямую.
Все ответы, которые я смог найти в SO, насколько мне известно, используют команду neo4j-shell
, которая в моей версии (Neo4j server 3.5.5) представляется устаревшей и заменена командой cyphershell
.
Используя команду sudo ./neo4j-community-3.5.5/bin/cypher-shell --help
Я получил следующие инструкции.
использование: cypher-shell [-h] [-a АДРЕС] [-u ИМЯ ПОЛЬЗОВАТЕЛЯ] [-p ПАРОЛЬ]
[--encryption {true, false}]
[--format {auto, verbose, plain}] [--debug] [--non-interactive] [--sample-row SAMPLE-ROWS]
[--wrap {true, false}] [-v] [--driver-version] [--fail-fast | --fail-at-end] [cypher]
Оболочка командной строки, где вы можете выполнить Cypher против
экземпляр Neo4j. По умолчанию оболочка является интерактивной, но вы можете
используйте его для написания скриптов, передавая шифр непосредственно в команде
строка или путем передачи файла с выражениями шифра (требуется Powershell
в Windows).
Вот мой файл, который пытается создать граф из CSV-файлов, и он взят из книги "Алгоритмы графов".
WITH "https://github.com/neo4j-graph-analytics/book/raw/master/data" AS base
WITH base + "transport-nodes.csv" AS uri
LOAD CSV WITH HEADERS FROM uri AS row
MERGE (place:Place {id:row.id})
SET place.latitude = toFloat(row.latitude),
place.longitude = toFloat(row.latitude),
place.population = toInteger(row.population)
WITH "https://github.com/neo4j-graph-analytics/book/raw/master/data/" AS base
WITH base + "transport-relationships.csv" AS uri
LOAD CSV WITH HEADERS FROM uri AS row
MATCH (origin:Place {id: row.src})
MATCH (destination:Place {id: row.dst})
MERGE (origin)-[:EROAD {distance: toInteger(row.cost)}]->(destination)
Когда я пытаюсь передать файл напрямую с помощью команды:
sudo ./neo4j-community-3.5.5/bin/cypher-shell neo_4.cypher
сначала запрашивается имя пользователя и пароль, но после ввода правильного пароля (неправильный пароль приводит к ошибке The client is unauthorized due to authentication failure.
), я получаю сообщение об ошибке:
Invalid input 'n': expected <init> (line 1, column 1 (offset: 0))
"neo_4.cypher"
^
Когда я пытаюсь выполнить команду с помощью команды:
sudo cat neo_4.cypher| sudo ./neo4j-community-3.5.5/bin/cypher-shell -u usr -p 'pwd'
вывод не генерируется и графика тоже нет.
Как запустить файл сценария шифра с помощью команды neo4j cypher-shell
?