Elasticsearch Aggregation search : how to avoid search hits I don't need ?

thumbnail
Eric COQUELIN, modified 5 Years ago. Expert Posts: 254 Join Date: 11/3/13 Recent Posts
Dear all,
First of all, Happy New Year to everyone ! It can be the 31st of December, still we need to move forward on some projects...
I am currently trying to use aggregate using Search API and have successfully written the following code.
SearchRequestBuilder searchRequestBuilder = searchRequestBuilderFactory.builder();            
DateHistogramAggregation dateHistogramAggregation= _aggregations.dateHistogram("createDate", "createDate");
dateHistogramAggregation.setDateHistogramInterval("15m");
            
searchRequestBuilder = searchRequestBuilder.addAggregation(dateHistogramAggregation);
searchRequestBuilder = searchRequestBuilder.modelIndexerClasses(MyModel.class);
searchRequestBuilder = searchRequestBuilder.size(1);
searchRequestBuilder = searchRequestBuilder.withSearchContext(searchContext -> searchContext.setCompanyId(serviceContext.getCompanyId()));
SearchResponse searchResponse = searcher.search(searchRequestBuilder.build());

The above works perfectly. However, from an optimization perspective, I am looking for a solution where hits are not returned as I don't need them. From ElasticSearch, they say that it avoids the fetch phase (and then improve performance): https://www.elastic.co/guide/en/elasticsearch/reference/6.7/returning-only-agg-results.html
But when I set
.size(0)
I can't retrieve the results from the
SearchResponse
object: I get a  nullPointerException.
Does anyone has a solution ?
Thank you,