2

我们正在用 Neo4j 做一些实验,为此我们想使用 Cypher 将数据加载和重新加载到 Neo4j。我们想触发这种结构的 Cypher 脚本 (.cql):

// Remove existing nodes/rels
START r=rel(*)
DELETE r;


START n=node(*)
DELETE n;

// Load new data
CREATE ()....

我们真的找不到一种好的方法来做到这一点。我们应该使用控制台、http 还是数据浏览器?

感谢您的任何意见。

注册

4

2 回答 2

2

我会用neo4j-shell这个:

bin/neo4j-shell < myScript.cql

对于仅删除数据库的所有内容,您也可以这样做

bin/neo4j stop; rm -rf data/graph.db; bin/neo4j start
于 2013-08-06T07:52:36.267 回答
0

您应该将您的语句封装在事务块中。begin ... commit

你删除了多少数据?

如果太多,你可能想分页,否则事务状态对你的记忆来说太大了,可能实验一下你可以一次性删除多少。例如

BEGIN
START r=rel(*)
WITH r
LIMIT 40000
DELETE r;
COMMIT

并根据需要重复。

确保你的 neo4j-shell 有足够的内存(如果你没有将 shell 连接到正在运行的服务器,那么执行会在服务器中运行)。编辑bin/neo4j-shell和设置

EXTRA_JVM_ARGUMENTS="-Xmx4G"
于 2013-08-06T12:04:49.030 回答