1

我正在使用“批量导入”将大型数据集添加到 neo4j 服务器

BatchInserterIndex someIndex = indexProvider.nodeIndex("some_index", MapUtil.stringMap("type", "exact"));

    /** Looping large dataset */
    for (..) {

        Map<String, Object> testMap //Map with various properties    
        long id  = inserter.createNode(testMap);
        someIndex.add(id, testMap);
    }

在大约 400k 个条目之后,我的代码抛出异常“java.lang.OutOfMemoryError: Java heap space”。

当我不使用索引时,它可以完美运行。我曾尝试不时刷新索引,但没有任何改善。

如何在使用索引的同时添加大型数据集?知道我哪里出错了吗?

4

1 回答 1

1

如果您的堆不是那么大,您可能会遇到 lucene 索引上的批量提交大小太高的问题。默认值为 500,000 个值。而且恐怕您无法从公共 API 更改它。我将尝试获得一些可以为 1.9 版配置此批量大小的东西。

于 2012-12-09T20:55:33.137 回答