elasticsearch - Elasticsearch堆被填充以进行简单搜索

标签 elasticsearch lucene heap-memory

执行以下简单搜索请求:http://localhost:9200/_search?size=100000
我的堆使用量突然增加。由于查询不包含任何过滤器字段,聚合等,因此字段数据缓存和过滤后的缓存无法填充堆。我不明白堆使用量增加背后的原因是什么。

我怀疑是因为文件的_source字段。但我不确定。我想知道幕后发生的事情。

最佳答案

不,是因为size=100000。 Elasticsearch将为此数量的文档分配内存以作为结果存储。 100000是一个很大的数字。例如,如果将其降低到1000,则可能不会填满堆。

无论如何,使用size=100000绝对是禁忌。不要那样做这不是Elasticsearch应该工作的方式。 Elasticsearch将以paginated way的方式逐页给您返回结果。或使用scan&scroll。无论如何都不要执行size=LARGE_NUMBER。对于足够高的数目,可以通过使每个节点内存不足并抛出OutOfMemoryError来关闭群集。

关于elasticsearch - Elasticsearch堆被填充以进行简单搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31402888/

相关文章:

html - 在 Kibana 4 的导航栏中添加一个页面

lucene - Lucene/Solr如何在多字段/多面搜索中实现高性能?

search - Elasticsearch query_string与match_phrase结合

java - 如何在不设置 -Xmx 标志的情况下限制堆消耗

C 最佳实践,堆栈与堆分配

overflow - Wumpus游戏的make-city-edges函数导致堆溢出

elasticsearch - 如何在ElasticSearch中标记罗马数字术语?

elasticsearch - 无法在ELK 5.4上正确解析timetstamp

elasticsearch - index_template 不适用于第二天

lucene - Sitecore 自定义索引配置语言