code: def _begin(self, connection, filterargs=(), escape=True):
          
          if escape:
              filterargs = self._escape_filterargs(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
docs: 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.