好的想法是十分钱一打,真正无价的是能够实现这些想法的人。

MapperParsingException[Failed to parse mapping [_default_]:

Elasticsearch | 作者 Jay | 发布于2016年06月22日 | 阅读数:6549

具体错误是:
MapperParsingException[Failed to parse mapping [_default_]: No handler for type [keyword] declared on field [real_ip]]; nested: MapperParsingException[No handler for type [keyword] declared on field [real_ip]];
本机分别启动packetbeat和elasticsearch,一段时间后一直提示上述错误。
把生成的索引删除后,还是这样。配置文件中template.overwrite设置的true。
请问大家是否遇到这样的问题,版本分别是官网最新的版本。
感觉不是模板里字段的问题,刚开始执行的时候是正常的。
请大家帮忙看下,此类问题的根本原因是什么。
已邀请:

jerryhouse - 搜索工程师,技术网站:www.dcharm.com

赞同来自:

我猜你把字段real_ip的类型设置成了keyword,而ES里面没有这种类型。ES支持的类型有:string, date, long, double, boolean , ip, object, nested, geo_point, geo_shape, completion.

Jay

赞同来自:

但是这是源码里面的json模板,字段我都没有更改过。关键是也成功执行过额。。。

billzy - Make it easy

赞同来自:

之前遇到过这个问题,可能是因为packetbeat里面的模板参数设置不对,没有深入研究,重新启动一个es实例后问题解决,你可以试试看。

Jay

赞同来自:

发现了这个问题,真相是这个样子的~
在beats源码的packetbeat目录下有两个模板,一个是packetbeat.template.json,另一个是packetbeat.template-es2x.json,猜测后者是针对elasticsearch-2.x以上版本提供的模板,在后者的模板中,查看所有字段,果然很多字段已经更改了类型。。。。
最后,在配置文件中更改默认模板文件后,解决了该问题。

要回复问题请先登录注册