ES中复杂对象字段对应的spring-data-elasticsearch中java类字段的写法

如题

自己碰到这个问题的时候搜了几个小时完全搜不到资料,还好突然意识自己把自己绕进去了,意识到复杂字段也是一个对象类型,此博客希望给遇到同样问题的同学们一个参考。

先说碰到的问题

我的问题就是ELK的kibana查看日志时,有host.hostname字段,我想用代码拿到这种中间带点的,非普通字段,也就是对象字段,但一开始一直不会写。。。

怎么解决?话不多说,看图!

图一,kibana里看到索引的mapping映射ES中复杂对象字段对应的spring-data-elasticsearch中java类字段的写法
图二,kibana的Discover视图中字段
message,tag都是普通字段,代码直接就取到了
ES中复杂对象字段对应的spring-data-elasticsearch中java类字段的写法

图三,一开始我写的错误代码,运行后hostname为Null
ES中复杂对象字段对应的spring-data-elasticsearch中java类字段的写法
ES中复杂对象字段对应的spring-data-elasticsearch中java类字段的写法

最终怎么解决这个问题了呢?

图一,把类型换成了Object
ES中复杂对象字段对应的spring-data-elasticsearch中java类字段的写法
图二,终于有数据了ES中复杂对象字段对应的spring-data-elasticsearch中java类字段的写法
可它怎么拿呢?

DangDangDangDang~

Object转换成json对象就行啦~
ES中复杂对象字段对应的spring-data-elasticsearch中java类字段的写法

大功告成~