2013-08-06 38 views
2

我们正在对Neo4j进行一些实验,为此我们希望使用Cypher将数据加载并重新加载到Neo4j。我们想发布一个这种结构的Cypher脚本(.cql):使用Cypher将数据加载到Neo4j中将数据加载到Neo4j中

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


START n=node(*) 
DELETE n; 

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

我们确实找不到一种很好的方法。我们应该使用控制台,http还是数据浏览器?

感谢您的任何意见。

暂存器

回答

2

我会用这个neo4j-shell

bin/neo4j-shell < myScript.cql 

仅用于删除您的数据库中的所有内容,你也可以做

bin/neo4j stop; rm -rf data/graph.db; bin/neo4j start 
0

你应该在你的封装声明交易区块。 begin ... commit

您删除了多少数据?

如果它太多了,您可能需要对它进行分页,否则事务状态对于您的内存来说太大,可能试验一次可以删除多少。例如。

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

并根据需要重复。

确保你的neo4j-shell有足够的RAM(如果你不是将shell连接到正在运行的服务器上,那么执行在服务器上运行)。编辑bin/neo4j-shell并设置

EXTRA_JVM_ARGUMENTS="-Xmx4G"