elasticsearch学习总结(三) API的使用范例3
来源:互联网 发布:萌萌猪软件系统开发 编辑:程序博客网 时间:2024/06/10 20:17
二、按时间分段统计事件次数
1、Rest api方式
GET /gzns_access/_search
{
"aggs":{
"counts":{
"date_range": {
"field": "@timestamp",
"format":"yyyy-MM-dd HH:mm:ss",
"ranges":[
{
"from":"2017-05-31 00:00:00",
"to":"2017-05-31 23:59:59"
},
{
"from":"2017-06-01 00:00:00",
"to":"2017-06-01 23:59:59"
}
]
}
}
}
}
2、java api方式
public List<ReportViewVO> getTimeRangeList(ReportViewVO param){
SearchRequestBuilder requestbuilder = client.prepareSearch(param.getIndex());
BoolQueryBuilder bqb = QueryBuilders.boolQuery();
String host = param.getHost();
if(StringUtils.isNotEmpty(host))
{
bqb.must(QueryBuilders.termQuery("host", param.getHost()));
}
String type = param.getType();
if(StringUtils.isNotEmpty(type))
{
bqb.must(QueryBuilders.termQuery("_type", param.getHost()));
}
requestbuilder.setQuery(bqb);
//时间区间统计
DateRangeAggregationBuilder aggregation = AggregationBuilders.dateRange("counts").field("@timestamp").format("yyyy-MM-dd HH:mm:ss");
List<TimeRangeVO> timeRanges = param.getTimeRange();
for(TimeRangeVO item : timeRanges){
aggregation.addRange(item.getStart(), item.getEnd());
}
requestbuilder.addAggregation(aggregation);
SearchResponse myresponse = requestbuilder.get();
Map<String, Aggregation> aggMap = myresponse.getAggregations().asMap();
InternalDateRange idr = (InternalDateRange) aggMap.get("counts");
List<InternalDateRange.Bucket> buckets = idr.getBuckets();
List<ReportViewVO> list = new ArrayList<ReportViewVO>();
ReportViewVO item = null;
for(InternalDateRange.Bucket bucket : buckets){
item = new ReportViewVO();
item.setTimestamp(bucket.getKeyAsString());
item.setValue(bucket.getDocCount());
list.add(item);
}
return list;
}
- elasticsearch学习总结(三) API的使用范例3
- elasticsearch学习总结(三) API的使用范例2
- elasticsearch学习总结(三) API的使用范例4
- elasticsearch学习总结(三) API的使用范例5
- elasticsearch学习总结(三) API的使用范例6
- elasticsearch学习总结(三) Java API的使用范例1
- Elasticsearch Java API 的使用(3)—添加索引
- 使用Elasticsearch的java api,操作elasticsearch
- Elasticsearch学习(三)
- elasticsearch学习总结——API 规范
- ElasticSearch Java API的使用
- Elasticsearch的Bulk API使用
- Elasticsearch的Java API使用
- Spark学习总结三 SparkSql操作elasticsearch
- ElasticSearch 菜鸟笔记(三)ElasticSearch 常见REST API 操作
- Elasticsearch 5.x (三) Elasticsearch REST API
- elasticsearch-java api之搜索(三)
- 经典收藏:网络命令行的使用和范例(三)
- 程序员听黑怕,你怕不怕
- 字符数组和字符串,char 和string定义的字符串的区别与遍历
- Spring MVC 学习之基于注解的控制器
- DecimalFormat对数值格式化的舍入问题——RoundingMode
- JSTL、C标签在页面获取集合大小
- elasticsearch学习总结(三) API的使用范例3
- hihocoder 2017微软探星夏令营在线技术笔试 1534 Array Partition
- android 8.0 新建文件管理类
- 高斯混合模型(GMM)
- 909422229_基于Jquery的JqGrid列表插件使用
- java 正则
- MOOC清华《程序设计基础》第6章:橱窗插花问题(递推法)
- 【LeetCode】617. Merge Two Binary Trees
- 图像二值化----otsu(最大类间方差法、大津算法)