无法在Amazon OpenSearch Service关闭索引,如何更新索引设置?
解决Amazon OpenSearch Service 6.x无法关闭索引更新analyzer的问题
AWS托管的OpenSearch Service(原Amazon Elasticsearch Service)6.x版本出于集群稳定性考量,默认禁用了索引关闭(_close)API,所以没法按常规流程修改静态索引设置(比如添加analyzer)。你可以通过重建索引的方式实现需求,具体步骤如下:
- 创建带有目标analyzer的新索引
复制原索引的mapping结构,同时在settings里配置好你需要的自定义analyzer,示例命令:
PUT /my_index_new { "settings": { "analysis": { "analyzer": { "my_custom_analyzer": { "type": "custom", "tokenizer": "standard", "filter": ["lowercase", "stop"] } } }, "mappings": { // 粘贴原索引的mapping内容,保证数据结构一致 } } }- 创建带有目标analyzer的新索引
- 迁移原索引数据到新索引
使用_reindexAPI完成数据迁移,示例:
POST _reindex { "source": { "index": "my_index" }, "dest": { "index": "my_index_new" } }若数据量较大,可添加
wait_for_completion=false参数让任务后台执行,避免请求超时。- 迁移原索引数据到新索引
- 切换索引别名(可选,保留原索引名称)
如果需要业务端无需修改索引名称,通过别名平滑切换流量:
POST /_aliases { "actions": [ { "add": { "index": "my_index_new", "alias": "my_index" } }, { "remove_index": { "index": "my_index" } } ] }注意:执行前务必确认新索引数据已完全同步,建议先切换流量验证业务正常后,再删除原索引。
- 切换索引别名(可选,保留原索引名称)
内容的提问来源于stack exchange,提问作者Lee Drum
相关产品推荐
相关产品推荐

