'Begins an asynchronous search and returns the message id to retrieve
the results.'

def _begin(self, connection, filterargs=()):

    try:
        filterstr = (self.filterstr % filterargs)
        msgid = connection.search(force_str(self.base_dn), self.scope, force_str(filterstr))
    except ldap.LDAPError as e:
        msgid = None
        logger.error((u"search('%s',    %d,    '%s')    raised    %s" % (self.base_dn, self.scope, filterstr, pprint.pformat(e))))
    return msgid
