'Posts the given xml message to http://<self.url>/update and
returns the result.
Passing `clean_ctrl_chars` as False will prevent the message from being cleaned
of control characters (default True). This is done by default because
these characters would cause Solr to fail to parse the XML. Only pass
False if you\'re positive your data is clean.'

def _update(self, message, clean_ctrl_chars=True, commit=True, softCommit=False, waitFlush=None, waitSearcher=None, overwrite=None, handler=u'update'):

    query_vars = []
    path_handler = handler
    if self.use_qt_param:
        path_handler = u'select'
        query_vars.append((u'qt=%s' % safe_urlencode(handler, True)))
    path = (u'%s/' % path_handler)
    if commit:
        query_vars.append((u'commit=%s' % str(bool(commit)).lower()))
    elif softCommit:
        query_vars.append((u'softCommit=%s' % str(bool(softCommit)).lower()))
    if (waitFlush is not None):
        query_vars.append((u'waitFlush=%s' % str(bool(waitFlush)).lower()))
    if (overwrite is not None):
        query_vars.append((u'overwrite=%s' % str(bool(overwrite)).lower()))
    if (waitSearcher is not None):
        query_vars.append((u'waitSearcher=%s' % str(bool(waitSearcher)).lower()))
    if query_vars:
        path = (u'%s?%s' % (path, u'&'.join(query_vars)))
    if clean_ctrl_chars:
        message = sanitize(message)
    return self._send_request(u'post', path, message, {u'Content-type': u'text/xml;    charset=utf-8'})
