2016-03-30 2 views
1
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")) 
    ); 

oben ist mein AggregationscodeFund doc Zählung für verschachtelte Aggregation von Elasticsearch mit Java api

I docCount von Geschlecht finden versuchen als

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

folge ich bin immer irrelevant am.

was mache ich falsch?

Antwort

0

ändern

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

zu

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

Diese Lösung wird nicht woking – EmilyAnonymous

Verwandte Themen