break; case "execution_hint": terms.executionHint(value); break; case "include":
private static void setTermsAggregation(SearchSourceBuilder searchSource, TermsAggregation aggregation, Integer size) { TermsAggregationBuilder termsAggregation = AggregationBuilders.terms(aggregation.name()) .field(aggregation.field()); if (size > 0) { termsAggregation.size(Integer.min(size, aggregation.maxSize())); } if (aggregation.order().length > 0) { List<BucketOrder> orders = Stream.of(aggregation.order()).distinct().map(t -> { switch (t) { case COUNT_ASC: return BucketOrder.count(Boolean.TRUE); case COUNT_DESC: return BucketOrder.count(Boolean.FALSE); case KEY_ASC: return BucketOrder.key(Boolean.TRUE); case KEY_DESC: return BucketOrder.key(Boolean.FALSE); default: return null; } }).filter(Objects::nonNull).collect(Collectors.toList()); termsAggregation.order(orders); } String executionHint = aggregation.executionHint().trim(); if (executionHint.length() > 0) { termsAggregation.executionHint(executionHint); } searchSource.aggregation(termsAggregation); }
break; case "execution_hint": terms.executionHint(value); break; case "include":
SearchResponse allTerms = client().prepareSearch("idx") .addAggregation(terms("terms") .executionHint(randomExecutionHint()) .field(fieldName) .size(10000) SearchResponse resp = client().prepareSearch("idx") .addAggregation(terms("terms") .executionHint(randomExecutionHint()) .field(fieldName) .size(size)