2017-02-02 2 views
1

При изучении агрегации в elasticsearch я обнаружил, что функциональность агрегации может быть реализована с помощью запроса JSON в HTTP-клиенте JEST, но не в клиентском приложении на основе TCP.Агрегации в клиенте Jest без запроса JSON

Я использую Jest Client и реализовал агрегацию через запрос Строка, которая работает нормально. Но я чувствую, что становится слишком громоздким, когда фильтры увеличиваются. Я хочу знать, есть ли способ реализовать агрегирования, кроме использования запроса JSON в клиенте JEST (что-то вроде сборщиков агрегации в TCP-клиенте) и как мы его реализуем?

ответ

0

Это было мое решение для реализации агрегаций, не забудьте сначала добавить запрос.

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); 
Смежные вопросы