在2022年1月8号,开发一个功能时遇到的一个问题,解决了好长时间,花费了我一下午的时间才得以解决,今天闲暇之余整理总结一下这个坑,以供后人不要再踩类似的坑。
我所要开发的功能是告警分类的查询功能,具体业务描述如下,要从kafka中消费的数据进行对数据的处理,分析匹配这条数据是否满足某项条件,如果满足某项条件,那么打上对应的标签,在我的业务中标签的概念就是告警分类,打上对应的告警分类的标签后,再存入到数据库中。
开发完对应的功能后,进行测试发现,数据是正常,通过es的head插件中能够看到es数据已经打上对应的标签,如图所示
可是我在根据这个字段查询时却查不到这个字段,随后我再kibana中执行查询命令如图所示。
惊奇的发现竟然查询不到结果,该语句是用来查询索引中存在这个字段的所有数据,可是我却查不到结果,那么说明我的数据中根本不存在这个字段,那么就和我看到es中有这个字段的结果相违背,一时间不知道如何解决这个问题,后来我通过命令查询索引的相关结构
GET /bosong_events_info_alias/_mapping
结果发现在我的索引中根本不存在这个字段,当然查不到,焕然大悟,原来我的es索引结构中没有这个字段,就算数据有这个字段es也不认同数据中存在这个字段,更不可能通过查询命令来查询相关的数据了,需要在es中手动添加字段。
添加es字段的命令为(此处我就截图了,不会此条命令麻烦各位可以照着手打,可以加请印象)
添加字段后再次查询成功,问题得以解决,特为此写一篇博客加强自己的记忆,也希望各位小伙伴不要踩和我同样的坑,谢谢大家。