csv - neo4j 全新安装无法识别 'using',导入时为 'load'

标签 csv upload neo4j

我刚刚在 Mac 上安装了 neo4j 2.1.3(当前最新版本)。我通过 bin neo4j start 启动了服务器,我可以通过 localhost:7474 验证 neo4j 正在运行。然后我使用以下代码继续到 neo4j shell:

➜  bin  neo4j-shell
Welcome to the Neo4j Shell! Enter 'help' for a list of commands
NOTE: Remote Neo4j graph database service 'shell' at port 1337

neo4j-sh (?)$ MATCH (n)
> OPTIONAL MATCH (n)-[r]-()
> DELETE n,r;
+--------------------------------------------+
| No data returned, and nothing was changed. |
+--------------------------------------------+
8946 ms
neo4j-sh (?)$ CREATE CONSTRAINT ON (w:Word) ASSERT w.value IS UNIQUE;
+--------------------------------------------+
| No data returned, and nothing was changed. |
+--------------------------------------------+
131 ms
neo4j-sh (?)$ USING PERIODIC COMMIT
Unknown command 'using'
neo4j-sh (?)$ LOAD CSV FROM
Unknown command 'load'
neo4j-sh (?)$ "file:/Users/code/Downloads/w2.txt" AS line FIELDTERMINATOR '\t'
Unknown command '"file:/users/code/downloads/w2.txt"'
neo4j-sh (?)$ MERGE (w1:Word { value: line[1] })
> MERGE (w2:Word { value: line[2] })
> CREATE (w1)-[:LINK { value : toInt(line[0])} ]->(w2);
SyntaxException: line not defined (line 1, column 25)
"MERGE (w1:Word { value: line[1] })"

我正在尝试创建一个双字母图,csv 文件包含一个单词列表。我首先删除当前数据,以便我可以从 .csv 文件创建一个干净的数据库。这行得通。然后我创建一个约束,使所有单词都是唯一的。到目前为止,一切都很好。

但是对于导入,它似乎无法识别 docs 中明确定义的命令.

我做错了什么?

---编辑1---

我认为内部可能有问题。即使我从(文档)[http://docs.neo4j.org/chunked/stable/cypherdoc-importing-csv-files-with-cypher.html]复制代码,它会给我错误。

代码

LOAD CSV WITH HEADERS FROM "http://docs.neo4j.org/chunked/2.1.3/csv/import/persons.csv" AS csvLine
CREATE (p:Person { id: toInt(csvLine.id), name: csvLine.name })

错误

➜  neo4j-v2.1.3  ./bin/neo4j-shell
Welcome to the Neo4j Shell! Enter 'help' for a list of commands
NOTE: Remote Neo4j graph database service 'shell' at port 1337

neo4j-sh (?)$ LOAD CSV WITH HEADERS FROM "http://docs.neo4j.org/chunked/2.1.3/csv/import/persons.csv" AS csvLine
Unknown command 'load'
neo4j-sh (?)$ CREATE (p:Person { id: toInt(csvLine.id), name: csvLine.name })
> ;
SyntaxException: Unknown function 'toInt' (line 1, column 24)
"CREATE (p:Person { id: toInt(csvLine.id), name: csvLine.name })"

---编辑2---

之前的错误提示我进行全新安装,这揭示了一些更奇怪的东西。此脚本现在可以在 neo4j-shell 中正常运行;

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r;

CREATE CONSTRAINT ON (w:Word) ASSERT w.value IS UNIQUE;
USING PERIODIC COMMIT
LOAD CSV FROM
  "file:/Users/code/Downloads/w2.txt"
  AS line
  FIELDTERMINATOR '\t'
MERGE (w1:Word { value: toString(line[1]) })
MERGE (w2:Word { value: toString(line[2]) })
CREATE (w1)-[:LINK { value : toInt(line[0])} ]->(w2);

但是当它完成运行时,我发现 neo4j 服务器已关闭/崩溃。当我 neo4j startneo4j restart 服务器时,我再次遇到与以前相同的错误。

最终编辑

原来 $ neo4j 启动了一个 neo4j 版本,但之前被删除了。对其他人的提示,始终确保使用安装文件夹中的 $ bin/neo4j start$ bin/neo4j-shell。不要假设 $ neo4j start$ neo4j-shell 总是有效。这里出了什么问题是我启动了一个错误的服务器版本,但启动了一个正确的 shell 版本。这两个人无法很好地相互交流。

最佳答案

可能是版本问题? IE。你有安装旧版本的 Neo4j 吗? 也许它弄乱了路径?尝试清除所有 neo4j 安装(在磁盘上搜索带有 neo4j 的文件名)并尝试重新开始?

同时检查 Neo4j 是否不再有启动守护进程脚本。

您如何确定您的服务器因第二个脚本而崩溃?也许还检查 data/log/* 和 data/graph.db/messages.log 中的日志文件

关于csv - neo4j 全新安装无法识别 'using',导入时为 'load',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25216097/

相关文章:

php - 视频无法通过 php 上传

python - 使用 pycurl 进行 FTP 上传的进度函数调用过于频繁

powershell - 如何更改数组列表的值

javascript - 无法在 PHP 中读取 csv 并将其传递给 html 文件中的 javascript

python - 无法在 Python 的 networkx 中加载简单的 csv

c - 将.csv文件解析为C中的二维数组

php - 多次上传和调整 class.upload.php

neo4j - 如何使用 spring data 在 Neo4j 中保存和检索嵌套对象

neo4j - 如何设置 Neo4j 开机自动启动?

python - 如何将参数传递给py2neo中的密码查询