'Builds and executes the query. Returns a list of search results.'

def run(self, spelling_query=None, **kwargs):

    final_query = self.build_query()
    search_kwargs = self.build_params(spelling_query, **kwargs)
    if kwargs:
        search_kwargs.update(kwargs)
    results = self.backend.search(final_query, **search_kwargs)
    self._results = results.get(u'results', [])
    self._hit_count = results.get(u'hits', 0)
    self._facet_counts = self.post_process_facets(results)
    self._spelling_suggestion = results.get(u'spelling_suggestion', None)
