ElasticSearch映射报错:根映射含不支持参数,Kibana添加字段映射失败
解决ElasticSearch "Root mapping definition has unsupported parameters" 报错
嘿,我之前调整映射的时候也踩过这个坑,咱们来拆解下你遇到的问题:
问题1:请求结构不符合映射更新API的要求
你发送的PUT请求里包含了settings字段,还在外层嵌套了mappings键,但更新已有索引的类型映射时,ElasticSearch的API不允许这么做:
settings属于索引级别的配置,需要通过单独的PUT testcats/_settings接口修改,不能和映射更新放在同一个请求里- 映射更新的请求体应该直接写类型的映射内容,不需要外层的
mappings包裹
问题2:dynamic_templates里的语法错误
你的strings模板里有个无效的"..."占位符,这会导致ElasticSearch无法解析映射规则,需要替换成合法的字段类型配置(比如默认的text类型)
修正后的正确请求
PUT testcats/items/_mapping { "_meta": { "version": "33" }, "dynamic_templates": [ { "numbers": { "match_mapping_type": "long", "mapping": { "type": "double" } } }, { "floats": { "match_mapping_type": "double", "mapping": { "type": "double" } } }, { "strings": { "match_mapping_type": "string", "mapping": { "type": "text", "fields": { "raw": { "ignore_above": 256, "type": "keyword" } } } } } ] }
额外说明
如果你确实需要修改索引的settings,得单独发送请求,比如:
PUT testcats/_settings { // 你的settings配置内容 }
内容的提问来源于stack exchange,提问作者Marian Montagnino
相关产品推荐
相关产品推荐

