繁体   English   中英

查找elasticsearch聚合计数

[英]find elasticsearch aggregation count

searchRequestBuilder.addAggregation(AggregationBuilders.terms("topCategoryFilter").field("category_id").size(AGGREGATION_SIZE) .subAggregation(AggregationBuilders.terms("subCategoryFilter").field("sub_category_id").size(AGGREGATION_SIZE)));

以上是我完成的代码

我需要找出elasticsearch聚合计数。 例如,我搜索了鞋子,并根据鞋子生成了过滤器。 在这些过滤器中,例如有“阿迪达斯”,“耐克”品牌的过滤器。 我想找出adidas或Nike的产品数量,并与筛选器一起显示这些结果。 那是过滤器应该向我显示Adidas(100)耐克(300),我正在使用Elastic搜索的集合来生成过滤器。 另外,我正在使用Java API如何实现呢?

用这个:

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()
    }

希望这会麻木

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM