我正在使用neo4j-shell
运行一些Neo4j cypher查询。在我导入大型CSV文件时,它们的执行时间很长。
我想在导入的每个阶段完成时向控制台输出一些消息,这样我们就可以在运行时看到导入进度而无需等待执行完成。
我已经检查了Cypher RefCard,但找不到这样的例子。 cypher是否支持输出到shell控制台窗口?
答案 0 :(得分:3)
我觉得这是一个非常有趣的话题。 IMO以强大的方式实现它的最好方法是编写服务器插件:
您收到TransactionData代表交易期间已更改的内容
您可以将更改转换为json
最后将它们写入日志
激活appenders中的日志
答案 1 :(得分:1)
"返回"字符串打印两次,因为第一个是标题,第二个是内容。你可以使用" AS"使用反引号更改标题以使其看起来更好:
MATCH (n)
DETACH DELETE n;
RETURN "Existing data removed" AS `Action:`;
更好的是,您可以将操作输出与消息结合起来:
MATCH (n)
DETACH DELETE n
RETURN count(n) AS `Existing data removed:`;
答案 2 :(得分:0)
那会很棒,但我不认为这是可能的。在过去,我已经计算了密码查询的数量,然后计算终端中成功消息的数量(呃;)
最好的办法是编写一个脚本,将cypher查询逐个传递给shell并在其间输出。
(另外,您可能已经涵盖了这一点,但为了帮助缓慢导入,请记住创建适当的索引并avoid the eager!)
答案 3 :(得分:0)
load cvs with headers from 'file1.csv'
return 'file1'
load cvs with headers from 'file2.csv'
return 'file2'
等
答案 4 :(得分:0)
我使用RETURN
完成了此操作。但每个RETURN
值打印两次!
不知道到底发生了什么。但是对于调试很好。
RETURN "Removing existing data...";
MATCH (n)
DETACH DELETE n;
RETURN "Existing data removed";