Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 在ElasticSearch中使用JAVA API获取聚合函数的空值_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Java - Fatal编程技术网 elasticsearch 在ElasticSearch中使用JAVA API获取聚合函数的空值,elasticsearch,java,elasticsearch,Java" /> elasticsearch 在ElasticSearch中使用JAVA API获取聚合函数的空值,elasticsearch,java,elasticsearch,Java" />

elasticsearch 在ElasticSearch中使用JAVA API获取聚合函数的空值

elasticsearch 在ElasticSearch中使用JAVA API获取聚合函数的空值,elasticsearch,java,elasticsearch,Java,我正在学习ElasticSearch,并创建了一个sdk来搜索ES中的数据。 我能够通过简单的搜索检索数据,但当我使用聚合函数(如avg和count)时,它会为聚合函数返回空值。 下面是我的代码: try(RestHighLevelClient client = ElasticSearchClient.client(url,port)) { SearchRequest searchRequest = new SearchRequest(index.toLo

我正在学习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());

try(RestHighLevelClient=ElasticSearchClient.client(url,端口)){
SearchRequest SearchRequest=新的SearchRequest(index.toLowerCase().trim());
SearchSourceBuilder SearchSourceBuilder=新的SearchSourceBuilder();
BoolQueryBuilder boolQuery=new BoolQueryBuilder();
对于(Map.Entry数据:details.entrySet()){
boolQuery.must(matchQuery(data.getKey(),data.getValue());
}
searchSourceBuilder.query(boolQuery);
如果(限制>0){
searchSourceBuilder.from(0);
searchSourceBuilder.size(限制);
}
searchSourceBuilder.aggregation(AggregationBuilders.avg(“averageTime”).field(“ExecutionTimeUnseconds”);
searchSourceBuilder.aggregation(AggregationBuilders.count(“noOfTimesApiUsed”).field(“serviceName”);
searchRequest.source(searchSourceBuilder);
searchRequest.scroll(新时间值(60000));//毫秒
searchRequest.searchType(searchType.DFS\u QUERY\u然后\u FETCH);
response=client.search(searchRequest,RequestOptions.DEFAULT);
sourceList=newarraylist();
for(SearchHit点击:response.getHits()){
字符串源=hits.getSourceAsString();
sourceList.add(source);
}
Logger.log(“最终响应:”,sourceList.toString();
我不明白代码中的问题是什么。请帮助