docs: def analyze(self, text, index=None, analyzer=None, tokenizer=None, filters=None, field=None):
          """
          Performs the analysis process on a text and return the tokens breakdown of the text
  
          (See :ref:`es-guide-reference-api-admin-indices-optimize`)
  
          """
          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)