由于业务中存储index的时候设置index指定错误,插入数据的时候本来指定的是keyword类型,但是自动写入的变成了text类型了。
查询的时候如果直接使用term query的时候通过指定field查询不到数据。只能通过field +keyword方式来处理。与业务逻辑代码不符。
主要实现通过:
POST _reindex
{
"source": {
"index": "mytest"
},
"dest": {
"index": "mytest1"
}
}
大体思路是 :
创建一个mapping类型一致的index,把老数据导入到这个index中
导入完之后删除掉原来的index。再把数据重新通过创建的index导入到老的index。
(业务数据没有变动其他场景可能不合适)
如有更好的方式也请赐教下。