neo4j-shell пример запуска скрипта Cypher

Мне нужно выполнить запрос Cypher к базе данных Neo4J из командной строки (для целей пакетного планирования).

Когда я запускаю это:

./neo4j-shell -file /usr/share/neo4j/scripts/query.cypher -path /usr/share/neo4j/neo4j-community-3.1.1/data/databases/graph.db

Я получаю эту ошибку:

ERROR (-v for expanded information):
        Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, /usr/share/neo4j/neo4j-community-3.1.1/data/databases/graph.db

В этой базе данных запущен экземпляр Neo4J (localhost:7474). Мне нужен скрипт для выполнения запросов против него.

ПРИМЕЧАНИЕ: это разделение оригинального вопроса, ради аккуратности.

2 ответа

Чтобы выполнить (один или несколько) операторов Cypher из файла во время работы сервера neo4j, вы можете использовать процедуру APOC apoc.cypher.runFile (file or url).

Поскольку вы упоминаете "пакетное планирование", могут быть полезны процедуры APOC по управлению заданиями и периодическому выполнению. Эти процедуры могут, в свою очередь, выполнять вызовы apoc.cypher.runFile,

Ладно, я просто сегодня раскрутил свежий экземпляр Neo4j-community-3.1.1 и столкнулся с точно такой же проблемой. Обратите внимание, что я уже создал базу данных с помощью инструмента массового импорта, поэтому может потребоваться создать каталог для базы данных (mkdir data/databases/graph.db) перед использованием оболочки.

Я полагаю, что ваша проблема может заключаться в том, что у вас есть экземпляр процесса Neo4j, работающий с базой данных, к которой вы пытаетесь получить доступ.

Для меня завершение работы Neo4j, а затем запуск оболочки с явным путем:

cd /path/to/neo4j-community-3.1.1/
bin/neo4j stop ## assuming it is already running (may need a port specifier)
bin/neo4j-shell -path data/databases/graph.db

По какой-то причине я подумал, что у вас могут быть запущены и оболочка, и сервер, но, очевидно, это не так. Надеюсь, кто-то исправит меня, если я ошибаюсь.

Другие вопросы по тегам