code: def fetch_aggregation_results(self):
          
  
          self.reset_aggregations()
  
          for key, val in self.aggregations.items():
              self.search.aggs.bucket(self.parent_agg_counter, val)
              self.parent_agg_counter += 1
  
          self.search = self.search.extra(size=0)
          response = self.search.execute()
          self.flush_aggregations()
          return response.to_dict()
docs: Loops though the self.aggregations dict and adds them to the Search object
          in order in which they were created. Queries elasticsearch and returns a dict
          containing the results
  
          :returns: a dictionary containing the response from elasticsearch