
public ListsearchHotWord() { try { SearchRequest searchRequest = new SearchRequest(indexName);//indexName是索引名称 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(QueryBuilders.matchAllQuery()); searchRequest.source(searchSourceBuilder); //聚合分析查询出现次数最多的10个词汇,hotWord是聚合名称,name是es的字段名 TermsAggregationBuilder keyword_agg = AggregationBuilders.terms("hotWord").field("name").size(10).order(BucketOrder.count(false)); searchSourceBuilder.aggregation(keyword_agg); searchRequest.source(searchSourceBuilder); SearchResponse response = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); Aggregations aggregations = response.getAggregations(); Terms term = aggregations.get("hotWord"); List buckets = (List ) term.getBuckets(); List hotWords = new ArrayList<>(); for (Terms.Bucket bucket : buckets) { String key = (String) bucket.getKey(); long docCount = bucket.getDocCount(); hotWords.add(key); logger.info("热词:"+key+"数量为:"+docCount); } return hotWords; }catch (Exception e){ logger.error("热词搜索失败"); } return null; }
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)