2017-02-22 81 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版本(社區版),我跑了以下內容:

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-shell運行Cypher。然而,這是沒有用的,因爲沒有辦法調用外部腳本,所以我必須爲可能的數百個腳本執行此操作。

建議使用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版本中一次運行多個密碼腳本而無需手動運行每個腳本? 是否可以在版本3.1.1中使用neo4j-shell?

回答

0

嘗試使用cypher-shell內的APOC程序apoc.cypher.runFile。下面是一個例子(與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,但是上運行的進程內,我收到以下錯誤信息: 失敗調用過程'apoc.cypher.runFile':引起:java.lang.RuntimeException:從未啓用的文件導入,請在您的neo4j.conf中設置apoc.import.file.enabled = true –

0

嗯,我設法找到一個解決方法。

  • 安裝的Neo4j 3.1.1
  • 創建數據庫
  • 卸載的Neo4j
  • 安裝的Neo4j 3.0。8
  • 運行我的暗號腳本

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

我不認爲這會削減它在生產環境中雖然:)