es查询时报 Data too large

报错如下:

原因:

https://www.cnblogs.com/jiu0821/p/6526930.html

参数 indices.fielddata.cache.size 控制有多少堆内存是分配给fielddata。当你执行一个查询需要访问新的字段值的时候,将会把值加载到内存,然后试着把它们加入到fielddata。如果结果的fielddata大小超过指定的大小 ,为了腾出空间,别的值就会被驱逐出去。

默认情况下,这个参数设置的是无限制 — Elasticsearch将永远不会把数据从fielddata里替换出去。

解决办法:

elasticsearch.yml 文件添加如下:

indices.fielddata.cache.size: 40%
indices.breaker.fielddata.limit: 70%

indices.breaker.fielddata.limit一定要比indices.fielddata.cache.size大,否则就会没有数据会被驱逐。为了能够 让它正确的工作,断路器限制必须比缓冲区大小要大。

原文地址:https://www.cnblogs.com/zphqq/p/9772065.html