美文网首页
ElasticSearch之Java Api聚合分组实战

ElasticSearch之Java Api聚合分组实战

作者: 三劫散仙 | 来源:发表于2016-04-08 18:07 被阅读0次

    最近有个日志收集监控的项目采用的技术栈是ELK+JAVA+Spring,客户端语言使用的是Java,以后有机会的话可以试一下JavaScript+Nodejs的方式,非常轻量级的组合,只不过不太适合服务化的工程,Kibana充当可视化层,功能虽然非常强大和灵活,但是需要业务人员懂Lucene的查询语法和Kibana的Dashboard仪表盘自定义功能才能玩的转,所以Kibana面向专业的开发人员和运维人员比较良好,但面向业务人员则稍微有点难度,我们这边就使用Java进行二次开发,然后前端定义几个业务人员关注的图表,然后把后端查询的数据,按照一定的维度放进去即可。

    基础环境:

    (1)ElasticSearch1.7.2

    (2)Logstash2.2.2

    (3)Kibana4.1.2

    (3)JDK7

    (4)Spring4.2

    使用到的技术点:

    (1)ElasticSearch的查询

    (2)ElasticSearch的过滤

    (3)ElasticSearch的日期聚合

    (4)ElasticSearch的Terms聚合

    (5)ElasticSearch的多级分组

    (6)ElasticSearch+Logstash的时区问题

    直接上代码:

    总结:

    (1)关于时区的问题,目前发现在测试按小时,按天分组统计的时候,时区使用的方法不是一致的,而postZone这个方法,在1.5版本已经废弃,说是使用timeZone替代,但经测试发现在按小时分组的时候,使用timeZone加8个时区的并没生效,后续看下最新版本的ElasticSearch是否修复。

    (2)使用Terms的聚合分组时,这个字段最好是没有分过词的,否则大量的元数据返回,有可能会发生OOM的异常

    (3)在不需要评分排名查询的场景中,尽量使用filter查询,elasticsearch会缓存查询结果,从而能大幅提高检索性能

    今天先总结这么多,后续有空再关注下

    (1)elasticsearch中的Aggregations和Facet的区别以及对比Solr中的Group和Facet的区别

    (2)在不同的聚合渠道中多级分组中是组内有序还是全局有序

    相关文章

      网友评论

          本文标题:ElasticSearch之Java Api聚合分组实战

          本文链接:https://www.haomeiwen.com/subject/oqbvlttx.html