':param config: Discover plugin config
:param entries: List of pseudo entries to search
:param task: Task being run
:return: List of entries found from search engines listed under `from` configuration'

def execute_searches(self, config, entries, task):

    result = []
    for (index, entry) in enumerate(entries):
        entry_results = []
        for item in config[u'from']:
            if isinstance(item, dict):
                (plugin_name, plugin_config) = list(item.items())[0]
            else:
                (plugin_name, plugin_config) = (item, None)
            search = get_plugin_by_name(plugin_name).instance
            if (not callable(getattr(search, u'search'))):
                log.critical(u'Search    plugin    %s    does    not    implement    search    method', plugin_name)
                continue
            log.verbose(u'Searching    for    `%s`    with    plugin    `%s`    (%i    of    %i)', entry[u'title'], plugin_name, (index + 1), len(entries))
            try:
                search_results = search.search(task=task, entry=entry, config=plugin_config)
                if (not search_results):
                    log.debug(u'No    results    from    %s', plugin_name)
                    continue
                log.debug(u'Discovered    %s    entries    from    %s', len(search_results), plugin_name)
                if config.get(u'limit'):
                    search_results = sorted(search_results, reverse=True, key=(lambda x: x.get(u'search_sort', u'')))[:config[u'limit']]
                for e in search_results:
                    e[u'discovered_from'] = entry[u'title']
                    e[u'discovered_with'] = plugin_name
                    e.on_complete(self.entry_complete, query=entry, search_results=search_results)
                entry_results.extend(search_results)
            except PluginWarning as e:
                log.verbose(u'No    results    from    %s:    %s', plugin_name, e)
            except PluginError as e:
                log.error(u'Error    searching    with    %s:    %s', plugin_name, e)
        if (not entry_results):
            log.verbose(u'No    search    results    for    `%s`', entry[u'title'])
            entry.complete()
            continue
        result.extend(entry_results)
    return sorted(result, reverse=True, key=(lambda x: x.get(u'search_sort', (-1))))
