查找elasticsearch聚合计数

whlutmcx  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(256)

searchRequestBuilder.addAggregation(AggregationBuilders.terms("topCategoryFilter").field("category_id").size(AGGREGATION_SIZE) .subAggregation(AggregationBuilders.terms("subCategoryFilter").field("sub_category_id").size(AGGREGATION_SIZE))); 以上是我所做的代码
我要查一下ElasticSearch聚合计数。例如,我搜索了鞋子,并根据它生成了过滤器。在这些过滤器,如有'阿迪达斯','耐克'品牌过滤器。我想知道有多少产品是阿迪达斯或耐克,并希望显示这些结果与过滤器。这是过滤器应该告诉我阿迪达斯(100)耐克(300)我生成过滤器使用ElasticSearch聚合。另外,我正在使用javaapi如何实现这一点?

smtd7mpg

smtd7mpg1#

使用此选项:

SearchResponse searchResponse = searchRequestBuilder.execute().actionGet()
    StringTerms stringTerms = searchResponse?.getAggregations()?.getAsMap()?.get("topCategoryFilter")
    List<StringTerms.Bucket> bucketList = stringTerms?.getBuckets()
    for(StringTerms.Bucket bucket :bucketList){
        String key = bucket.getKey()
        Integer doc_count = (Integer)bucket.getDocCount()
    }

希望这是heps!!

相关问题