Elasticsearch查询以编程方式返回所有记录抛出内存异常

时间:2014-08-21 19:48:11

标签: elasticsearch

我需要从elasticsearch检索所有记录并对数据进行统计分析。记录数量不高达500000条记录。每条记录有7列,其中5列是String类型(单字值)。所以对我来说数据的大小并不是那么大。我在执行以下操作时遇到“内存异常”:

SearchResponse response = client.prepareSearch(indexFrom).setTypes(typeFrom)
            .setQuery(matchAllQuery()).setSize(SIZE)
            .execute().actionGet();
SIZE=500000

任何帮助/建议? 我正在设置Xmx10g。

感谢。 -Vera

1 个答案:

答案 0 :(得分:0)

如果您只需要恢复所有未按此类别排序的文档,则应使用 scan and scroll 搜索。

总之,它结合了以下的使用:

  • 搜索禁用排序结果的类型扫描(从而节省一些内存)
  • 滚动API,它允许您通过小批量查看结果,与DB的游标非常相似。

我认为它可以解决你的记忆问题。