code: def search(self):
          
          s = Search(doc_type=self.doc_types, using=es.client,
                     index=es.index_name)
          # don't return any fields, just the metadata
          s = s.fields([])
          # Sort from parameters
          s = s.sort(*self.sorts)
          # Paginate from parameters
          s = s[self.page_start:self.page_end]
          # Same construction as parent class
          # Allows to give the same signature as simple search
          # ie. Response(data) instead of Response(search, data)
          return s.response_class(partial(SearchResult, self))
docs: Construct the Search object.