Elastic Search Group by a single column - Term Aggregation - TrackTotalHits

Can someone please help me on the below requirement ?

I am able to group by single field using Term aggregation but
I always end up with fetching top 10 buckets since size defaults to 10.

  1. Is there a way where I can get total distinct groups available
    and get just 10 as per the default size ? [ Total distinct groups might be
    sometimes 1lakh - I have a requirement where I will have to
    display total distinct groups available]

  2. Can I perform Term Aggregations on numeric fields as well similar
    to string fields in ES ?