您的位置:首页 > 编程语言 > Java开发

Elasticsearch Java API 的使用(6)—时间聚合

2017-09-05 08:37 513 查看

java时间聚合

public class EsAggregation{
public void searchAggregation(TransportClient client){
AggregationBuilder aggregation = AggregationBuilders
.dateRange("agg")
.field("inputtime")
.format("yyyy-MM-dd HH:mm:ss")
// from 1950 to 1960 (excluded)
.addRange("2016-7-21 00:00:01", "2016-7-21 00:00:02");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.aggregation(aggregation);

System.out.println(sourceBuilder.toString());

SearchResponse response =  client
.prepareSearch("pointdata")
.setTypes("pointdata")
.setQuery(QueryBuilders.queryStringQuery
("W3.UNIT1.10LBG01CP301"))
.setSource(sourceBuilder)
.execute()
.actionGet();

SearchHits hits = response.getHits();
for(int i = 0; i < hits.getHits().length; i++) {
System.out.println(i+":"+hits.getHits()[i].getSourceAsString());
}

// sr is here your SearchResponse object
Range agg = response.getAggregations().get("agg");

// For each entry
for (Range.Bucket entry : agg.getBuckets()) {
// Date range as key
String key = entry.getKeyAsString();
// Date bucket from as a Date  引用import org.joda.time.DateTime;
DateTime fromAsDate = (DateTime) entry.getFrom();
// Date bucket to as a Date
DateTime toAsDate = (DateTime) entry.getTo();
// Doc count
long docCount = entry.getDocCount();

System.out.println("key [{"+key+"}], from [{"+fromAsDate+"}], "+
"to [{"+toAsDate+"}], d
4000
oc_count [{"+docCount+"}]");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: