【发布时间】:2016-05-16 06:14:45
【问题描述】:
我使用导入工具读取了大约 100 万个节点。现在是建立关系的时候了。 (不幸的是,如果你想使用导入工具,看起来你必须在 csv 中明确地预先确定关系,所以这是不可能的。)
我做的第一件事是在节点上放置一个索引。
接下来,我写了这个,我想知道这是我的问题——即使有一个索引,这个语句可能会导致太多的笛卡尔积?:
USING PERIODIC COMMIT 500
LOAD CSV WITH HEADERS FROM
'file:///home/monica/...relationship.csv' AS line
MATCH (p1:Player {player_id: line.player1_id}), (p2:Player {player_id: line.player2_id})
MERGE (p1)-[:VERSUS]-(p2)
显然USING PERIODIC COMMIT 500 没有帮助,因为我得到了我的错误,
Java heap space
四处搜索,我了解到更改 neo4j-wrapper.conf 文件中的内存设置可能会有所帮助,因此我将设置一直更改为 4GB(我有一个 8 GB 系统):
wrapper.java.initmemory=4096
wrapper.java.maxmemory=4096
仍然遇到同样的错误。
现在,我被困住了。除了:
之外,我想不出任何其他策略:1) 重写语句
2) 使用内存更大的系统?
3)找到其他方法来批量运行它?
任何建议都会很棒。提前感谢 neo4j SO 社区。
【问题讨论】:
标签: neo4j heap-memory