java - 查找elasticsearch聚合计数

标签 java elasticsearch

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

上面是我完成的代码

我需要找出elasticsearch聚合计数。例如, 我搜索了鞋子,并根据它生成了过滤器。在这些过滤器中,例如有“阿迪达斯”、“耐克”品牌过滤器。我想了解有多少种阿迪达斯或耐克的产品,并希望将这些结果与筛选器一起显示。 那是 Filter 应该显示 Adidas(100) Nike(300) 我正在使用 Elasticsearch 聚合生成过滤器。我也在使用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()
    }

希望这能有所帮助!!

关于java - 查找elasticsearch聚合计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36256982/

相关文章:

elasticsearch - 如何搜索与某些查询匹配的文档,如果在附近的时间存在与另一个查询匹配的文档

apache-spark - Spark 流传输期间无法将数据帧保存到Elasticsearch

java - 在java中删除特定单词之后或之前的部分字符串

java - driver.navigate().to ("url") 在 Chrome 64 和驱动程序 chrome 2.35 中不起作用;

java - JPA 的类型转换取决于同一实体中的另一个属性

elasticsearch - elasticsearch 中简单计数聚合的 400 错误

elasticsearch - 查询elasticsearch以分析文本

java - 如何控制google play排行榜登录

java - Java中的队列操作

elasticsearch - ElasticSearch:筛选文档,其中数组字段中的任何值都不在列表中