2017-02-22 42 views
0

Я использую Neo4j уже несколько месяцев, и я становлюсь довольно раздраженным. Кажется, что каждая новая версия прерывает предыдущую. У меня есть несколько сценариев загрузки Cypher, которые я больше не могу запускать через командную строку.NEO4J 3.1.1 Загрузить CSV

можно запустить следующие из браузера:

USING PERIODIC COMMIT 1000 
LOAD CSV WITH HEADERS FROM "file:///person.csv" AS csvLine 
MERGE (p:Person {sysurn      : csvLine.urn})      
ON CREATE SET p.dob = trim(csvLine.dob) 
ON CREATE SET p.forename = trim(csvLine.forename) 
ON CREATE SET p.surname = trim(csvLine.surname); 

Ранее в версии 3.0.3 (Community Edition) Я побежал следующая:

java -cp "C:\Program Files\Neo4j CE 3.0.3\bin\neo4j-desktop-3.0.3.jar" org.neo4j.shell.StartClient -file "D:/nosql/Load data/load_person.cql" 

Это больше не работает в 3.1.1 :

java -cp "C:\Program Files\Neo4j CE 3.1.1\bin\neo4j-desktop-3.1.1.jar" org.neo4j.shell.StartClient -file "D:/nosql/Load data/load_person.cql" 

Я получаю сообщение об ошибке Java. Общий консенсус заключается в том, чтобы запустить полную версию .tar, поэтому я установил это.

Теперь я могу запустить Cypher из браузера или использовать cypher-shell. Однако это бесполезно, так как нет никакого способа вызвать внешний скрипт, поэтому я должен сделать это, возможно, для сотен скриптов.

Рекомендация - использовать ne04j-shell (теперь не рекомендуется!) Я пробовал neo4j-shell. Это не допускает пробелы в пути!

переместить файл и попробуйте запустить следующее:

"C:\Program Files\neo4j-community-3.1.1\bin\neo4j-shell" -path "D:/nosql/neoDB/databases/graph.db" -config "neo4j.conf" -file "D:/nosql/Loaddata/load_person.cql" 

я получаю следующее сообщение об ошибке:

ERROR (-v for expanded information): 
    Error starting org.neo4j.kernel.impl.factory.GraphDatabaseFacadeFactory, 

D:\nosql\neoDB\databases\graph.db

Я пробовал различные комбинации, включая добавление имени хоста в запросе:

non-JRMP server at remote endpoint 

Я пытаюсь добавить параметр -config, однако это снова не позволяет пробелы!

С каждой новой версией, кажется, сложнее фактически импортировать данные в Neo4j.

Мой вопрос: возможно ли в версии 3.1.1 запускать более одного скрипта cypher за один раз без ручного запуска каждого из них? Можно ли использовать neo4j-shell в версии 3.1.1?

ответ

0

Пробуйте использовать процедуру APOC apoc.cypher.runFile с точностью до cypher-shell. Вот пример (с file URL, отформатированный для Windows):

CALL apoc.cypher.runFile("file:d:/nosql/Load data/load_person.cql"); 

Если пространство в пути до сих пор представляет проблемы, вы можете переименовать «загружать данные» папку «LoadData» и изменить приведенный выше запрос соответствующим образом ,

+0

Спасибо. Я пробовал это, однако процедуры apoc не работают с версией 3.1.1. –

+0

К сожалению, я должен был упомянуть, что я уже пробовал это, однако процедуры apoc также не работают с версией 3.1.1. Это требует установки neo4j.conf coniguration: apoc.import.file.enabled = истина Я поставил это и перезапустить Neo4j, однако на запуск прок, я получаю следующее сообщение об ошибке: Не удалось invoke procedure 'apoc.cypher.runFile': вызвано: java.lang.RuntimeException: импорт из файлов не включен, установите apoc.import.file.enabled = true в свой neo4j.conf –

0

Ну, мне удалось найти обходное решение.

  • Установка Neo4j 3.1.1
  • Создание базы данных
  • Uninstall Neo4j
  • Neo4j 3,0 Установить.8
  • Run мои Cypher скрипты

e.g. java -cp "C:\Program Files\Neo4j CE 3.0.8\bin\neo4j-desktop-3.0.8.jar" org.neo4j.shell.StartClient -file "D:/nosql/Load data/load_person.cql"

  • деинсталлировать Neo4j
  • установки Neo4j 3.1.1

Я не думаю, что это собирается сократить его в производственной среде хотя :)