今天编写ES分组聚合查询,要求根据时间段对设备sn分组,查询pm25、pm10、voice的平均值
但是因为我原来设置sn字段为Text类型,导致会报错,报错原因是我 sn 字段为Text类型,我需要把sn增加fielddata=ture才可以继续执行
Es会把所有的sn加载到内存中,然后进行分组,所以会导致内存占用过多得问题,其实fielddata=true这种方法是不可取的
于是我将sn改为了keyword类型,本身sn也不需要拆分检索,没有必要使用Text类型
有一点麻烦就是Es是不支持修改映射 mapping的,所以必须是把全部数据导出,然后删除index,重新启动程序
自动创建索引 + 数据类型,然后进行数据的加入