code: def aggregate(self, search):
          
          for f, facet in iteritems(self.facets):
              agg = facet.get_aggregation()
              agg_filter = MatchAll()
              for field, filter in iteritems(self._filters):
                  if f == field:
                      continue
                  agg_filter &= filter
              search.aggs.bucket(
                  '_filter_' + f,
                  'filter',
                  filter=agg_filter
              ).bucket(f, agg)
docs: Add aggregations representing the facets selected, including potential
          filters.