从 cypher neo4j-shell 向控制台输出状态消息

Output status messages to the console from cypher neo4j-shell

我正在 运行 使用 neo4j-shell 进行一些 Neo4j 密码查询。当我导入大型 CSV 文件时,它们的执行时间很长。

我想在导入的每个阶段完成时向控制台输出一些消息,这样我们就可以在 运行 时看到导入进度,而不必等待执行完成。

我检查了 Cypher RefCard,但找不到这方面的示例。 cypher 是否支持输出到 shell 控制台 window?

那太好了,但我认为这不可能。在过去,我曾计算过密码查询的数量,然后计算终端中成功消息的数量 (ugh ;)

你最好的选择可能是编写一个脚本,将密码查询一个接一个地传输到 shell 并在两者之间输出。

(另外,您可能已经涵盖了这一点,但为了帮助缓慢导入,请记住创建适当的索引和 avoid the eager!)

我发现这是一个非常有趣的话题。 IMO 以强大的方式实现它的最佳方法是编写服务器插件:

嗯...好的。你可以输入 RETURN 语句来给你一个线索,例如

load cvs with headers from 'file1.csv'
return 'file1'
load cvs with headers from 'file2.csv'
return 'file2'

等等

我使用 RETURN 完成了此操作。但是每个 RETURN 值都打印了两次! 不确定那里到底发生了什么。但是对于调试来说没问题。

RETURN "Removing existing data...";
MATCH (n)
DETACH DELETE n;
RETURN "Existing data removed";

"Return" 字符串被打印两次,因为第一次是 header,第二次是内容。您可以使用 "AS" 和反引号来更改 header 以使其看起来更好:

MATCH (n) 
DETACH DELETE n;
RETURN "Existing data removed" AS `Action:`;

更好的是,您可以将操作输出与消息结合起来:

MATCH (n) 
DETACH DELETE n
RETURN count(n) AS `Existing data removed:`;