报错如下:
原因:
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大,否则就会没有数据会被驱逐。为了能够 让它正确的工作,断路器限制必须比缓冲区大小要大。