在es中,text类型的字段使用一种叫做fielddata的查询时内存数据结构.当字段被排序,聚合或者通过脚本访问时这种数据结构会被创建.它是通过从磁盘读取每个段的整个反向索引来构建的,然后存存储在java的堆内存中. fileddata默认是不开启的.Fielddata可能会消耗大量的堆空间,尤其是在加载高基数文本字段时.一旦fielddata已加载到堆中,它将在该段的生命周期内保留.此外,加载fielddata是一个昂贵的过程,可能会导致用户遇到延迟命中.这就是默认情况下禁用fielddat…