elasticsearch - 没有JSON查询的Jest客户端中的聚合

标签 elasticsearch jest

在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/

相关文章:

elasticsearch - 嵌套 bool 应查询不能与最小值匹配

elasticsearch - 使用JEST通过查询删除ElasticSearch

elasticsearch - 如何打开elasticsearch词干

elasticsearch - 如何通过对象值字段过滤Elasticsearch

elasticsearch - 使用updateBuilder时不会发生Elasticsearch部分更新

elasticsearch - 如何使用Jest在 Elasticsearch 中获取索引的创建时间

elasticsearch - 使用JestClient进行ElasticSearch查询似乎很慢

elasticsearch - 带有多个must子句的Elasticsearch Bool查询形成

search - 如何在elasticsearch中的单个请求中发送100个名称

java - Elasticsearch 中的文档索引,JAVA API