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

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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐