如何停止Elasticsearch自动为新索引添加自定义分析器/过滤器
如何阻止Elasticsearch自动为新索引添加自定义小写归一化器
嗨,我来帮你搞定这个问题!你已经精准定位到问题出在主模板里,接下来按这几步操作就能解决:
1. 精准定位包含目标配置的模板
先别着急乱改,先找到到底是哪个模板在自动添加这个小写归一化器。你可以用下面的命令快速筛选,直接返回包含lowercase_normalizer的模板信息:
GET /_template?filter_path=*.settings.analysis.normalizer.lowercase_normalizer
执行后,你就能看到对应的模板名称(比如可能叫default或者自定义的global_template之类的),接下来就针对这个模板操作。
2. 移除模板里的多余配置
这里分两种情况处理:
情况A:模板还有其他有用配置,只想删掉归一化器
如果这个模板里还有其他你需要保留的设置(比如其他分析器、映射规则),那就更新模板,只移除lowercase_normalizer部分。假设你找到的模板名叫main_global_template,发送以下请求:
PUT /_template/main_global_template { "index_patterns": ["*"], // 保持原有的索引匹配规则,别乱改 "settings": { // 保留模板里其他所有需要的settings配置,只删除"analysis.normalizer.lowercase_normalizer"这一段 "analysis": { // 如果原来的analysis里只有这个归一化器,直接删掉整个analysis字段;如果还有其他分析器,就只移除lowercase_normalizer节点 } }, // 把原有的mappings、aliases等配置完整保留下来 }
情况B:模板没用了,直接删除更省事
如果这个模板除了自动添加这个归一化器之外,没有其他你需要的配置,那直接删除模板最干脆:
DELETE /_template/[你的模板名称]
把[你的模板名称]替换成你刚才找到的模板名就行。
3. 验证操作是否生效
最后创建一个测试索引(比如test_new_idx),然后执行以下命令查看它的配置:
GET /test_new_idx/_settings
检查返回结果里有没有lowercase_normalizer,如果没有,就说明已经成功阻止自动添加啦!
另外要注意:如果有多个模板都包含这个配置,你得逐个处理;还有模板的优先级问题,如果有更高优先级的模板也带这个配置,也要一并修改哦。
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

