我有一个庞大的数据库,有很多节点(10mil+)。整个数据库中只有一种类型的关系。然而,有许多节点之间存在重复的关系。我目前拥有的是这个Cypher脚本,可以找到所有具有重复项的节点对,然后运行一个Python脚本来清理每个节点对中的重复关系(只保留一个唯一的关系)。
match (a)-[r]->(b) with a,b, count(*) as c where c>1 return a.pageid, b.pageid, c LIMIT 100000;
这对于小型数据库效果还不错,但当我在大型数据库上运行它时,最终会出现有关堆内存耗尽的异常(将盒子增加更多并不能解决问题)。
因此,问题有两个方面: 1)是否有任何可以放在关系上的索引(现在没有)可以帮助加快速度? 2)是否有一个Cypher查询可以(以快速或至少可靠的方式)删除数据库中的所有重复关系,仅保留每个节点对中已经存在的一个唯一关系?
附言:我正在运行neo4j 2.0.1在Ubuntu(12something)AWS盒子上。
我知道有这样一个答案:stackoverflow,但他所问的更具体(反对已知的两个节点),而且全数据库覆盖的答案已经无法运行了(语法改变?)。
提前感谢!
match (a)-[r]->(b) with a,b, count(*) as c where c>1 return a.pageid, b.pageid, c LIMIT 100000;
这对于小型数据库效果还不错,但当我在大型数据库上运行它时,最终会出现有关堆内存耗尽的异常(将盒子增加更多并不能解决问题)。
因此,问题有两个方面: 1)是否有任何可以放在关系上的索引(现在没有)可以帮助加快速度? 2)是否有一个Cypher查询可以(以快速或至少可靠的方式)删除数据库中的所有重复关系,仅保留每个节点对中已经存在的一个唯一关系?
附言:我正在运行neo4j 2.0.1在Ubuntu(12something)AWS盒子上。
我知道有这样一个答案:stackoverflow,但他所问的更具体(反对已知的两个节点),而且全数据库覆盖的答案已经无法运行了(语法改变?)。
提前感谢!