前些天,boss分配了个任务:把ElasticSearch的日志集成到应用中

前些天,boss分配了个任务给我:把ElasticSearch的日志集成到应用中,要求可以按照某个关键词key,日志保持时间段查询就可以了,ElasticSearch有api,你去网上找找看,具体选择自己掌握,早日完成。

回想了下那些年,ElasticSearch,哪些鬼,没用过,遂百度之,结果发觉这玩意儿还挺nb(具体如何nb这儿不说),首先是了解了下ELK这三兄弟,算你有一套基于网站日志数据挖掘的用户访问行为模式可视化研究,了解过程。。。。。。ELK这儿说下K(Kibnana):一个可视化工具,拿来但不限于查询ElasticSearch的数据,我们有搭建ELK这套系统,要了个帐号直接就去操作了基于网站日志数据挖掘的用户访问行为模式可视化研究,官网学了下操作句型,下边是几个查询句子

GET_cat/indices?v//获取所有index信息

再来一个精确查询的事例(以下ElasticSearch简称es),info(es的index)user(es的type)

POSTinfo/user/_search

{

“query”:{“term”:{“name”:”zhagnsan”}},

“from”:0,

“size”:100

}//分页查询info/user下名子为zhangsan的记录

这儿有几个es技术成语须要解释下,es虽然与数据库比较相像,就拿mysql来比较

万事具备,只欠东风,接出来该写程序来实现功能了,maven引包的实现发觉有以下选择:

这儿我选择了RestHighLevelClient,官方推荐,碰到问题讨论的人多,问题解决快。

下边贴点干货,篇幅有限,只贴部份主要代码。

maven依赖包引入:

org.elasticsearch.client

elasticsearch-rest-high-level-client

6.2.3

springboot是个好东西,要用的,application.yml配置如下:

es:

hostAndPorts:’ip1:9200,ip2:9200,ip3:9200,ipn:9200′

index:’info-prod-*’

type:’user’

es是个查询工具,把api封装成服务最好不过了,于是就有了EsClientService:

EsClientService

说明:

接出来就是业务类的调用了:具体如下:

业务类调用es查询

说明:最终可以领到搜索结果的一个Map,这个系列化返回给后端就好。

最后分享一个小坑:es的查询速率是贼快贼快的,这是基于es的分片技术,之后再合并结果促使查询结果很快,但也恰恰由于此:在深度分页(from+size>10000)时查询速率就不再理想了,所以es干脆就直接报错了,以下为Kinbaba深度分页错误示范,望你们防止之。

es分页查询报错信息

最后,感谢你们的观看^-^

© 版权声明
THE END
喜欢就支持一下吧
点赞272赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容