Elasticsearch 7.17.5创建索引模板遇未知设置错误求助
解决Elasticsearch 7.17.5索引模板设置
total_fields.limit的错误问题 错误根源分析
- 第一个错误的核心是配置路径与结构双重错误:你写的
index.mappings.total_fields.limit里,mappings应为单数mapping,更关键的是,该配置不需要嵌套成单独的mappings/mapping节点,而是直接作为settings.index的子属性存在。 - 改成
mapping后出现的反序列化错误,是因为你在settings.index下新增了不符合规范的mapping节点,Elasticsearch期望的是index.mapping.total_fields.limit这种扁平路径的配置,而非嵌套结构。
修正后的索引模板示例
{ "version": 1, "index_patterns": [ "my-index-template", "my-index-template-*" ], "template": { "settings": { "index": { "number_of_shards": 3, "number_of_replicas": 2, "max_ngram_diff": 7, "mapping.total_fields.limit": 1000 }, "analysis": { ... } }, "mappings": { ... } } }
关键注意点
- 区分两个不同的
mappings配置:template下的顶级mappings:用于定义索引的字段映射结构settings.index下的mapping.*系列参数:用于控制映射相关的限制规则,这两类配置完全独立,不可混淆
- 可以提前用校验API验证模板合法性,避免创建失败:
curl -X POST "http://your-es-host:9200/_validate/index_template?name=my-index-template&pretty" -H 'Content-Type: application/json' -d @your-template-file.json
内容的提问来源于stack exchange,提问作者Saeed
相关产品推荐
相关产品推荐

