GET recommended-20220330/_search
{
"aggs": {
"recommended": {
"cardinality": {
"field": "recommended.keyword"
}
},"searchUserIp": {
"cardinality": {
"field": "searchUserIp"
}
}
},
"size": 0
}
转换成java
        //统计关键词和ip数量
        try {
            SearchRequest searchRequest = new SearchRequest(param.getIndex());
            SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
            //去重统计关键词的数量
            CardinalityAggregationBuilder recommendedAgg = AggregationBuilders.cardinality("recommended").field("recommended.keyword");
            //去重统计ip的数量
            CardinalityAggregationBuilder searchUserIpAgg = AggregationBuilders.cardinality("searchUserIp").field("searchUserIp");
            searchSourceBuilder.trackTotalHits(true);
            searchSourceBuilder.size(0);
            searchSourceBuilder.aggregation(recommendedAgg);
            searchSourceBuilder.aggregation(searchUserIpAgg);
            searchRequest.source(searchSourceBuilder);
            SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
            Aggregations result = searchResponse.getAggregations();
            //获取聚合查询结果
            Cardinality recommendedTerms = result.get("recommended");
            map.put("recommendedCount",recommendedTerms.getValue());
            //获取聚合查询结果
            Cardinality searchUserIpTerms = result.get("searchUserIp");
            map.put("IpCount",searchUserIpTerms.getValue());
        } catch (Exception e) {
            log.error("[搜索关键词统计-统计IP和搜索词] 错误详情 : "+ ZsylException.getErrorMessage(e));
            return map;
        }
 
                         
                                

