如何在cypher中删除大量节点

时间:2013-12-10 07:47:13

标签: neo4j cypher

我正在尝试使用网络管理员(即localhost:7474 /浏览器)在一次查询中删除cyphper中的100万个节点。
这些节点标记为User。我运行了以下查询,然后在等待大约1分钟后返回了未知错误。

match (u:User) delete u

此查询每次都返回Unknown错误。我确认我的PC资源并不缺乏。 我正在使用Neo4j版本2.0.0 RC1社区版。和Neo4j在当地举办 我尝试删除节点的方法是错误的吗? 感谢

3 个答案:

答案 0 :(得分:6)

您应该使用合理的事务大小~10-50k原子操作进行写操作。因此,您可以使用limit并运行该语句,直到所有用户都离开:

match (u:User) with u limit 1000 delete u

答案 1 :(得分:1)

使用Neo4j 3.x及更高版本,您也可以使用APOC运行大型删除事务:

call apoc.periodic.iterate("MATCH (u:User) return u", "DETACH DELETE u", {batchSize:1000})
yield batches, total return batches, total

答案 2 :(得分:-3)

我发现只删除neo4j/data文件夹是删除数据库的最快方法。