在Elasticsearch中探索聚合时,我发现聚合功能可以在基于HTTP的JEST客户端中通过JSON查询实现,而不能在基于TCP的Java客户端中实现。
我正在使用Jest Client,并通过工作正常的查询字符串实现了聚合。但是随着过滤器的增加,它变得越来越麻烦。
我想知道是否有一种方法可以实现,而不是在JEST客户端中使用JSON查询(类似于TCP客户端中的聚合生成器),以及如何实现它?
最佳答案
这是我实现聚合的解决方案,请不要忘记首先添加查询。
org.elasticsearch.search.builder.SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
TermsAggregationBuilder termsAggregationBuilder =
AggregationBuilders.terms(fieldName).field("keyword");
termsAggregationBuilder.minDocCount(minDocCount);
termsAggregationBuilder.size(size);
searchRequestBuilder.aggregation(termsAggregationBuilder);
Search search = new io.searchbox.core.Search.Builder(searchSourceBuilder.toString())
.addIndex(indexNameBuilder.getIndexName(searchContext.getCompanyId()))
.build();
SearchResult result = jestConnectionManager.getClient().execute(search);
关于elasticsearch - 没有JSON查询的Jest客户端中的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42002287/