zoukankan      html  css  js  c++  java
  • 关于elasticsearch聚合查询只有10条数据(java)

    业务:查询热点词汇

    实现:使用聚合函数,统计前100条高频词汇

    解决聚合只显示10条问题:

    在构建termsBuilder聚合查询对构建器时,在最后设置size值为100,完美解决 
     public ESReturn searchHotPoint(Integer day, Integer num) {
            ESReturn esReturn = new ESReturn();
            List<BucketsReturnVO> bucketsReturnVOList = new ArrayList<>();
            Client client = clientHelper.getClient();
            //分组聚合
            AggregationBuilder termsBuilder = AggregationBuilders.terms("by_searchKeyword").field("searchKeyword").size(100);
            AggregationBuilder countBuilder = AggregationBuilders.count("searchKeywordCount").field("searchKeyword");
            termsBuilder.subAggregation(countBuilder);
            SearchRequestBuilder sb = client.prepareSearch("search_history").setTypes("user_search_history");
            SearchResponse sr = sb.setQuery(QueryESUtil.getQueryBuildByDay(day))
                    .addAggregation(termsBuilder)
                    .get();
            SearchHits hits = sr.getHits();
            SearchHit[] lists = hits.getHits();
            logger.info("总命中数:" + hits.totalHits);
            logger.info("总长度:" + lists.length);
            Aggregation bySearchKeyword = sr.getAggregations().asMap().get("by_searchKeyword");
            //转成BySearchKeywordVO对象
            BySearchKeywordVO keywordVO = GsonUtil.GsonToBean(bySearchKeyword.toString(), BySearchKeywordVO.class);
            List<Buckets> buckets = keywordVO.getBy_searchKeyword().getBuckets();
            //整理返回数据
            for (Buckets bucket : buckets) {
                BucketsReturnVO bucketsReturnVO = new BucketsReturnVO();
                bucketsReturnVO.setKeyword(bucket.getKey());
                bucketsReturnVO.setDocCount(bucket.getDoc_count());
                bucketsReturnVOList.add(bucketsReturnVO);
            }
            esReturn.setTotal(hits.totalHits);
            esReturn.setData(bucketsReturnVOList);
            return esReturn;
        }
  • 相关阅读:
    CentOS 5.3 挂载 读写 ntfs硬盘
    Linux基础教程
    信息安全技术实用教程
    单片机原理与应用技术
    【36.11%】【codeforces 725C】Hidden Word
    【37.74%】【codeforces 725D】Contest Balloons
    【16.67%】【codeforces 667C】Reberland Linguistics
    【16.05%】【codeforces 664B】Rebus
    【record】10.17..10.23
    【23.33%】【codeforces 664C】International Olympiad
  • 原文地址:https://www.cnblogs.com/mlzdev/p/11832798.html
Copyright © 2011-2022 走看看