Получение нулевого значения функции агрегации с использованием JAVA API в ElasticSearch - PullRequest
0 голосов
/ 15 мая 2019

Я изучаю ElasticSearch и создал SDK для поиска данных в ES.Я могу получить данные с помощью простого поиска, но когда я использую агрегированную функцию, такую ​​как avg и count, она возвращает нулевое значение для функций агрегирования.Ниже мой код:

   try(RestHighLevelClient client =  ElasticSearchClient.client(url,port)) {
                SearchRequest searchRequest = new SearchRequest(index.toLowerCase().trim());
                SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
                BoolQueryBuilder boolQuery = new BoolQueryBuilder();
                for (Map.Entry<String,String> data: details.entrySet()){
                    boolQuery.must(matchQuery(data.getKey(),data.getValue()));

                }

                searchSourceBuilder.query(boolQuery);
                if(limit>0) {
                    searchSourceBuilder.from(0);
                    searchSourceBuilder.size(limit);
                }

                searchSourceBuilder.aggregation(AggregationBuilders.avg("averageTime").field("executionTimeInSeconds"));
                searchSourceBuilder.aggregation(AggregationBuilders.count("noOfTimesApiUsed").field("serviceName"));
                searchRequest.source(searchSourceBuilder);
                searchRequest.scroll(new TimeValue(60000));//in millisecond
                searchRequest.searchType(SearchType.DFS_QUERY_THEN_FETCH);
                response = client.search(searchRequest, RequestOptions.DEFAULT);
                sourceList = new ArrayList<>();
                for (SearchHit hits: response.getHits()) {
                    String source = hits.getSourceAsString();
                    sourceList.add(source);
                }
                Logger.log("Final Response :", sourceList.toString());

Я не могу понять, в чем проблема в коде.Пожалуйста, помогите.

...