最近用户反映索引模板任务没有执行,查了下确实没有新建成功,手动执行报错:

org.elasticsearch.client.ResponseException: PUT http://10.96.120.2:8300pcids_dspre_check-202103: HTTP/1.1 400 Bad Request

{"error":{"root_cause":[{"type":"remote_transport_exception","reason":"[bdes207-prd1][10.96.120.97:8301][indices:admin/create]"}],"type":"illegal_argument_exception","reason":"Mapper for [customerName] conflicts with existing mapping in other types:\n[mapper [customerName] has different [doc_values] values]"},"status":400}

意思就是字段customerName存在不同的doc_value设置,检查了模板和索引mapping均没有发现其他customerName字段,

删除模板或者删除模板创建的所有索引后再建同样报错,寻思肯定是其他地方还有这个字段导致的冲突,查询集群下所有的索引信息,发现有前缀名为pcids的非该模板创建的其他索引,查看mapping存在customerName字段,doc_values设置与出问题的索引模板不一致,

问题解决:更改模板mapping中的名称前缀创建模板,然后再次执行创建索引,创建成功。

原因:模板创建的时候路由到了同前缀名的其他模板下,与自有字段的doc_value值冲突,导致报错,同集群下建模板时命名最好不要用已存在的模板或者索引前缀名称。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐