'The callback function handles the search results from AllChannelCommunity.
:param subject: Must be SIGNAL_ALLCHANNEL_COMMUNITY.
:param change_type: Must be SIGNAL_ON_SEARCH_RESULTS.
:param object_id: Must be None.
:param search_results: The result dictionary which has \'keywords\', \'results\', and \'candidate\'.'

@call_on_reactor_thread
def _on_channel_search_results(self, subject, change_type, object_id, search_results):

    if (self.session is None):
        return
    keywords = search_results['keywords']
    results = search_results['torrents']
    self._logger.debug('Got    channel    search    results    %s.    keywords    %s', len(results), keywords)
    if (keywords != self._current_keywords):
        return
    channel_cids = results.keys()
    channel_results = self.channelcast_db.getChannelsByCID(channel_cids)
    results_data = {'keywords': keywords, 'result_list': channel_results}
    self.session.notifier.notify(SIGNAL_CHANNEL, SIGNAL_ON_SEARCH_RESULTS, None, results_data)
