'Performs the analysis process on a text and return the tokens breakdown of the text
(See :ref:`es-guide-reference-api-admin-indices-optimize`)'

def analyze(self, text, index=None, analyzer=None, tokenizer=None, filters=None, field=None):

    if (filters is None):
        filters = []
    argsets = 0
    args = {}
    if analyzer:
        args['analyzer'] = analyzer
        argsets += 1
    if (tokenizer or filters):
        if tokenizer:
            args['tokenizer'] = tokenizer
        if filters:
            args['filters'] = ','.join(filters)
        argsets += 1
    if field:
        args['field'] = field
        argsets += 1
    if (argsets > 1):
        raise ValueError('Argument    conflict:    Specify    either    analyzer,    tokenizer/filters    or    field')
    if (field and (index is None)):
        raise ValueError('field    can    only    be    specified    with    an    index')
    path = make_path(index, '_analyze')
    return self.conn._send_request('POST', path, text, args)
