docs: def n1ql_index_create(self, ix, **kwargs):
          """
          Create an index for use with N1QL.
  
          :param str ix: The name of the index to create
          :param bool defer: Whether the building of indexes should be
              deferred. If creating multiple indexes on an existing
              dataset, using the `defer` option in conjunction with
              :meth:`build_deferred_indexes` and :meth:`watch_indexes` may
              result in substantially reduced build times.
          :param bool ignore_exists: Do not throw an exception if the index
              already exists.
          :param list fields: A list of fields that should be supplied
              as keys for the index. For non-primary indexes, this must
              be specified and must contain at least one field name.
          :param bool primary: Whether this is a primary index. If creating
              a primary index, the name may be an empty string and `fields`
              must be empty.
          :param str condition: Specify a condition for indexing. Using
              a condition reduces an index size
          :raise: :exc:`~.KeyExistsError` if the index already exists
  
          .. seealso:: :meth:`n1ql_index_create_primary`
          """
          defer = kwargs.pop('defer', False)
          ignore_exists = kwargs.pop('ignore_exists', False)
          primary = kwargs.pop('primary', False)
          fields = kwargs.pop('fields', [])
          cond = kwargs.pop('condition', None)
  
          if kwargs:
              raise TypeError('Unknown keyword arguments', kwargs)
  
          info = self._mk_index_def(ix, primary)
  
          if primary and fields:
              raise TypeError('Cannot create primary index with explicit fields')
          elif not primary and not fields:
              raise ValueError('Fields required for non-primary index')
  
          if fields:
              info.fields = fields
  
          if primary and info.name is N1QL_PRIMARY_INDEX:
              del info.name
  
          if cond:
              if primary:
                  raise ValueError('cannot specify condition for primary index')
              info.condition = cond
  
          options = {
              'ignore_exists': ignore_exists,
              'defer': defer
          }
  
          # Now actually create the indexes
          return IxmgmtRequest(self._cb, 'create', info, **options).execute()