Elasticsearch:如何将analyzers/tokenizers/filters设置变更应用至现有索引
修改Elasticsearch索引分析器设置的优化方案
你的原有操作流程是合规且有效的,但可以通过索引别名简化步骤、减少服务中断时间,具体优化如下:
优化步骤
- 创建包含新分析器/分词器/过滤器配置的新索引(例如命名为
posts-v2)
- 创建包含新分析器/分词器/过滤器配置的新索引(例如命名为
- 执行重索引操作,将原索引
posts的数据同步到posts-v2
- 执行重索引操作,将原索引
- 若业务端直接使用索引名访问,先给新索引
posts-v2添加别名posts,然后删除原索引posts;若已使用别名,直接将别名从原索引切换到新索引(此操作是原子性的,几乎无服务中断)
- 若业务端直接使用索引名访问,先给新索引
- 验证业务访问正常后,清理原索引(如果未删除的话)
关键说明
Elasticsearch 不支持直接修改现有索引的分析器类配置,因为这类设置决定了数据的索引逻辑,创建后无法变更,所以重建索引是官方认可的标准方案。相比你的原有流程,用别名切换的方式省去了中间临时索引的创建与二次重索引,同时避免了删除原索引后重建的空档期,大幅降低服务中断风险。
内容的提问来源于stack exchange,提问作者Nullable Yogurt
相关产品推荐
相关产品推荐

