def _begin(self, connection, filterargs=(), escape=True):
if escape:<EOL><INDENT>filterargs = self._escape_filterargs(filterargs)<EOL><DEDENT>try:<EOL><INDENT>filterstr = self.filterstr % filterargs<EOL>msgid = connection.search(force_str(self.base_dn),<EOL>self.scope, force_str(filterstr))<EOL><DEDENT>except ldap.LDAPError as e:<EOL><INDENT>msgid = None<EOL>logger.error(u"<STR_LIT>" %<EOL>(self.base_dn, self.scope, filterstr, pprint.pformat(e)))<EOL><DEDENT>return msgid<EOL>
Begins an asynchronous search and returns the message id to retrieve
the results.

filterargs is an object that will be used for expansion of the filter
string. If escape is True, values in filterargs will be escaped.