繁体   English   中英

使用Java API查找Elasticsearch的嵌套聚合的文档计数

[英]find doc count for nested aggregation of elasticsearch using java api

searchRequestBuilder.addAggregation(
            AggregationBuilders.nested("skuFilter").path("skus")
            .subAggregation(AggregationBuilders
                .filter("sizeFilterCondition")
                .filter(FilterBuilders.boolFilter().must(FilterBuilders.termsFilter("skus.gender", "Dad\'s", "Mom\'s")))
                .subAggregation(
                    AggregationBuilders.nested("sizeValues").path("skus.attribute")
                        .subAggregation(AggregationBuilders.terms("attributeId").field("skus.attribute.attribute_id").size(AGGREGATION_SIZE)
                            .subAggregation(AggregationBuilders.terms("attributeValue").field("skus.attribute.attribute_value").size(AGGREGATION_SIZE)))))
            .subAggregation(AggregationBuilders.terms("fromAge").field("skus.from_age").size(AGGREGATION_SIZE)
                .subAggregation(AggregationBuilders.terms("toAge").field("skus.to_age").size(AGGREGATION_SIZE)))
            .subAggregation(AggregationBuilders.terms("gender").field("skus.gender").size(AGGREGATION_SIZE))
            .subAggregation(AggregationBuilders.min("min_price").field("skus.sale_price"))
            .subAggregation(AggregationBuilders.max("max_price").field("skus.sale_price"))
    );

以上是我的汇总代码

我正在尝试找到docdoc性别如下

Nested agg = searchResponse.getAggregations().get("skuFilter");
        StringTerms terms = (StringTerms) agg.getAggregations().getAsMap().get("gender");

    List<Bucket> termsList = terms.getBuckets();
    for (Bucket bucket : termsList) {
        System.out.println(bucket.getKey());
        System.out.println(bucket.getDocCount());
    }

我变得无关紧要了。

我做错了什么?

更改

Nested agg = searchResponse.getAggregations().get("skuFilter");  

Nested agg = searchResponse.getAggregations().getAsMap().get("skuFilter");

暂无
暂无

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

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