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

def run_mlt(self, **kwargs):

    if ((self._more_like_this is False) or (self._mlt_instance is None)):
        raise MoreLikeThisError(u"No    instance    was    provided    to    determine    'More    Like    This'    results.")
    additional_query_string = self.build_query()
    search_kwargs = {u'start_offset': self.start_offset, u'result_class': self.result_class, u'models': self.models}
    if (self.end_offset is not None):
        search_kwargs[u'end_offset'] = (self.end_offset - self.start_offset)
    results = self.backend.more_like_this(self._mlt_instance, additional_query_string, **search_kwargs)
    self._results = results.get(u'results', [])
    self._hit_count = results.get(u'hits', 0)
