0

我已经使用 Neo4j 好几个月了,现在非常生气。似乎每个新版本都打破了以前的版本。我有多个无法再通过命令行运行的 Cypher Load 脚本。

我可以从浏览器运行以下命令:

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?

4

2 回答 2

0

尝试从内部使用 APOC 过程apoc.cypher.runFilecypher-shell。这是一个示例(带有file为 Windows 格式化的 URL):

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

如果路径中的空间仍然存在问题,您可以将“加载数据”文件夹重命名为“加载数据”并相应地修改上述查询。

于 2017-02-22T23:30:02.447 回答
0

好吧,我设法找到了解决方法。

  • 安装neo4j 3.1.1
  • 创建数据库
  • 卸载 Neo4j
  • 安装neo4j 3.0.8
  • 运行我的密码脚本

例如 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

我不认为这会在生产环境中削减它:)

于 2017-02-23T10:00:25.840 回答