现象:用java的api操做es求和,假如求和字段是keyword会有问题,大概会报错该字段不是numerical类型
**原因:**1、text或者keyword类型不能求和,改为integer/double/long型.
2、求和字段不要加keyword,添加keyword的目的是禁止分词,对于非text类型的字段,是默认不分词的
解决办法:
由于es不能修改单个字段的类型,故需要重建索引,把该字段改成long类型,然后用reindex把数据倒到新索引里面
reindex的的命令如下:
POST /_reindex
{
“source”: {
“index”: “lhy_acd_file_new”,
“query”: {
“match_all”: {}
}
},
“dest”: {
“index”: “lhy_acd_file”
}
}