【发布时间】:2013-01-19 09:01:10
【问题描述】:
我一直在尝试按照 neo4j 谷歌组和其他在线资源中的建议运行此查询:
开始 n = 节点(*) 匹配 n-[r?]-() 其中 ID(n)>0 删除 n, r;
为了删除测试之间的所有节点和关系。当我从控制台执行此操作时,我用完了 java 堆空间。当我从 python 执行此操作时(使用新出现的 graph_db.clear(),它使用相同的查询),我得到一个“SystemError:None”,我认为这是相同的 java 堆空间错误。我有一个包含 500k 个节点、只有 5k 个关系和 7M 个属性的数据库。我正在使用 neo4j-1.8.1 的 Mac 笔记本电脑 (10.6.8) 上运行 8GB RAM。我想我有点惊讶删除节点(基本上没有关系,所以非常小的子图)会超过 java 堆空间,但我对 neo4j 的工作原理非常天真。任何有关如何前进的建议表示赞赏。我确实知道数据目录中的 rm -rf 并从头开始会起作用,但我认为可能有一个不太激进的解决方案。
[交叉发布到 neo4j 谷歌群组]
【问题讨论】:
-
在 WITH 后分页更加方便和明智:
START n = node(*) MATCH n-[r?]-() WITH n,r LIMIT 10000 DELETE n, r; -
@MichaelHunger 不应该是:
START n = node(*) WITH n LIMIT 10000 MATCH n-[r?]-() DELETE n, r;?