es: java

编程入门 行业动态 更新时间:2024-10-19 19:29:55

<a href=https://www.elefans.com/category/jswz/34/1771364.html style=es: java"/>

es: java

 1 统计count

GET /indexname/_count
{"query": {"range": {"dataTime": {"from": "2023-01-22","to": null,"include_lower": true,"include_upper": true,"format": "yyyy-MM-dd HH:mm:ss||yyyy||yyyy-MM-dd","boost": 1}}}
}/*** 查询指定索引文档总数(可增加查询条件,如果为空,则查询所有)*/
@Test
public void testCount() {SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();CountRequest countRequest = new CountRequest();//构造查询条件RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("dataTime").gte("2023-01-22").format("yyyy-MM-dd HH:mm:ss||yyyy||yyyy-MM-dd");searchSourceBuilder.query(rangeQueryBuilder);countRequest.indices("indexname").source(searchSourceBuilder);CountResponse countResponse = null;try {countResponse = restHighLevelClient.count(countRequest, RequestOptions.DEFAULT);return countResponse.getCount();} catch (IOException e) {log.error("[EsClientConfig.countDocumentSize][error][fail to count document size,param is {}]", countRequest);}return 0;log.info("[document size is {}, indexName is {}]", size, indexName);
}
\

2. 使用agge 统计

在过滤条件后,统计总数(count), dinsticn , count(distinct())

GET /indexName/_search
{"size": 0,"query": {"range": {"dataTime": {"from": "2023-01-22","to": null,"include_lower": true,"include_upper": true,"format": "yyyy-MM-dd HH:mm:ss||yyyy||yyyy-MM-dd","boost": 1}}},"aggregations": {"objtypename": {"terms": {"field": "externalObj","size": 100,"min_doc_count": 1,"shard_min_doc_count": 0,"show_term_doc_count_error": false,"order": [{"_count": "desc"},{"_key": "asc"}]}},"objtypecount": {"cardinality": {"field": "externalObj"}},"total_count":{"value_count": {"field": "id.keyword"}}}
}
RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(httpHostsList.toArray(new HttpHost[httpHostsList.size()])));SearchRequest searchRequest = new SearchRequest();searchRequest.indices("indexName");SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("dataTime").gte("2023-01-22").format("yyyy-MM-dd HH:mm:ss||yyyy||yyyy-MM-dd");TermsAggregationBuilder termsAggregationBuilder = AggregationBuilders.terms("objtypename").field("externalObj").size(100);CardinalityAggregationBuilder cardinalityAggregationBuilder = AggregationBuilders.cardinality("objtypecount").field("externalObj");ValueCountAggregationBuilder valueCountAggregationBuilder = AggregationBuilders.count("total_count").field("id.keyword");searchSourceBuilder.query(rangeQueryBuilder);searchSourceBuilder.aggregation(termsAggregationBuilder);searchSourceBuilder.aggregation(cardinalityAggregationBuilder);searchSourceBuilder.aggregation(valueCountAggregationBuilder);searchSourceBuilder.size(0);System.out.println("----"+searchSourceBuilder.toString());searchRequest.source(searchSourceBuilder);SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);//  打印: objtypename,objtypecount,total_countAggregations aggregations = searchResponse.getAggregations();for(Aggregation aggregation : aggregations.asList()){System.out.println("---"+aggregation.getName());}
// distict Terms objtypenameTerms =  aggregations.get("objtypename");for(Terms.Bucket bucket : objtypenameTerms.getBuckets()){System.out.println("***"+ bucket.getKeyAsString()+"   :   "+bucket.getDocCount() );}// count(disinct)Cardinality cardinality = aggregations.get("objtypecount");System.out.println("---"+cardinality.getValue());//countValueCount valueCount = aggregations.get("total_count");System.out.println("^^^"+ valueCount.getValue());

更多推荐

es: java

本文发布于:2023-12-04 15:52:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1661441.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:es   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!