解决elasticsearch报错报错“java.lang.IllegalArgumentException: Rejecting mapping update to [这里是索引名称保密] as the final mapping would have more than 1 type: [_doc, log]"”

某日在研究kibana的索引生命周期功能,感觉对于我们现在几千个索引蛮有用途,之前都是写个删除脚本呢,放到定时任务进行删除。

通过新建一个生命后期策略,设置日期15日,并通过索引模板匹配到测试索引的时候,第二天发现该索引无任何数据,显示索引大小283B,文档数0,似乎是不接受数据了

通过查看elasticsearch的logs_server.json日志,发现如下报错:

通过各种查找资料可知, 从 ES 7.0 开始,Type 被废弃
在 7.0 以及之后的版本中 Type 被废弃了。一个 index 中只有一个默认的 type,即 _doc。

而恰巧之前同事使用logstash向elasticsearch输出的时候定义了一个document_type为log的配置项,果断注释掉该配置项,重启logstash,重启elasticsearch,发现我测试的索引的内容的_type列的值均为_doc了,之前显示的log,应该是这里跟默认的有冲突。

之后索引能正常文档数量产生,并且内容里面的_type均为_doc了,如图,自动恢复正常,有正常的数据,等待观察生命周期策略效果,如果测试索引能正常到期删除,可以把范围扩展到全部索引。。

可随意转载,欢迎署名!
原文地址:https://www.cnblogs.com/netsa/p/15147794.html