elasticsearch6.6热词统计

elasticsearch6.6热词统计,第1张

elasticsearch6.6热词统计
public List searchHotWord() {
        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;
    }

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5479649.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存