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;
}
