Getting max and min topHits from ElasticSearch terms aggregation

Hi all!

I have terms aggregation by one field and I have max and 2 top hits: with max and min date.
How can I do this with subAggregation?

Can I do this in one terms aggregation, or i need to do terms aggregtion twice?

Now I can do only like this: do terms aggregation, then min aggregation and it's topHits;
do terms aggregation, then max aggregation and it's topHits.

I am using ES Java API.

Pretty sure this is the only way to do it.