使用Java rest-high-level-client查询文档时,from+size大于100000,报各种错~

Elasticsearch | 作者 apeletMarshal | 发布于2019年06月11日 | 阅读数:182

在使用Java rest-high-level-client查询文档时,from+size大于100000,报各种错
1.  java.lang.OutOfMemoryError: GC overhead limit exceeded
20190611203222.png

2. java.lang.OutOfMemoryError: Java heap space
_20190611204617.png

这两个报错基本时一样的,就是说对内存不够用。我查询的结果集整体不到100M。但是我的堆内存设置了256M。为什么不够用呢?
3. java.io.IOException: entity content is too long [142047036] for the configured buffer limit [104857600]
20190611211055.png

 
这个错误是来自java rest-high-level-client 里的http jar包限制了返回结果不能超过100M.
 
我的es使用场景是日志中心。
我想问的是,我这这种返回超大结果集是不合理的设置吗?
还是有其他的解决方案。
 
 
已邀请:

ouyangchucai

赞同来自:

深度翻页问题,建议通过scroll或search_after解决。
Search After 
http://cwiki.apachecn.org/disp ... After
 
Elasticsearch: 权威指南 » 游标查询 Scroll 
https://www.elastic.co/guide/c ... .html

laoyang360 - [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

1、内存太小了,内存建议:Min(物理机内存,31GB);
2、from+size大于100000, 建议修改:max_result_window窗口值大小。
3、建议看一下官网的建议:
index.max_result_window
The maximum value of from + size for searches to this index. Defaults to 10000.
Search requests take heap memory and time proportional to from + size and this limits that memory.
See Scroll or Search After for a more efficient alternative to raising this.
https://www.elastic.co/guide/e ... .html

ridethewind

赞同来自:

用search_after

要回复问题请先登录注册