elasticsearch 删除某个index的某个字段
一、使用script删除,没成功,不再尝试二、使用reindex方式,成功1、(1)根据旧index建一个新索引(去掉你要删的字段)(2)如果要提高reindex性能,把刷新时间设为-1,副本数为0,等重建完索引再恢复PUT dy-talent-v22/_settings/{"settings":{"index":{"refresh_interval":"-1","number_of_replic
·
一、使用script删除,没成功,不再尝试
二、使用reindex方式,成功
1、
(1)根据旧index建一个新索引(去掉你要删的字段)
(2)如果要提高reindex性能,把刷新时间设为-1,副本数为0,等重建完索引再恢复
PUT dy-talent-v22/_settings/
{
"settings":{
"index":{
"refresh_interval":"-1",
"number_of_replicas":"0"
}
}
}
2、执行reindex,把旧index数据导到新index
POST _reindex?wait_for_completion=false
{
"source":{
"index":"dy-talent-v21"
},
"dest":{
"index":"dy-talent-v22"
}
}
执行上面DSL会变为一个后台task在执行(会立即响应,返回taskId),可以通过下面这条语句查看当前es集群正在运行的task执行进度
GET _tasks?detailed=true&actions=*reindex&human
取消正在运行的task
POST _tasks/rPrtN5DER6us5n768Wkr4A:41146105/_cancel
其中:rPrtN5DER6us5n768Wkr4A:41146105就是执行reindex时返回的taskId
3、在reindex执行完后,通过修改别名,指向新的index
POST /_aliases
{
"actions": [
{"add": {"index": "dy-talent-v22","alias": "dy-talent"}},
{"remove": {"index": "dy-talent-v21","alias": "dy-talent"}}
]
}
4、恢复索引的刷新时间和副本数
PUT dy-talent-v22/_settings/
{
"settings":{
"index":{
"refresh_interval":"30s",
"number_of_replicas":"1"
}
}
}
更多推荐
已为社区贡献6条内容
所有评论(0)