(No version information available, might only be in Git)
Collection::createIndex — Crear un índice de colección
Crear un índice en la colección.
Se lanza una excepción si ya existe un índice con el mismo nombre, o si la definición del índice no está correctamente formada.
index_name
      El nombre del índice a crear. Este nombre debe ser un nombre de índice válido tal como
      aceptado por la consulta SQL CREATE INDEX.
     
index_desc_jsonLa definición del índice a crear. Contiene un array de objetos IndexField, y cada objeto describe un solo miembro de documento a incluir en el índice, y una cadena opcional para el tipo de índice que podría ser INDEX (por omisión) o SPATIAL.
Una descripción única de IndexField se compone de los siguientes campos:
          field: string, la ruta completa del documento hacia el miembro del documento o el campo a indexar.
        
        type: string, uno de los tipos de columnas SQL admitidos para mapear el campo.
        Para los tipos numéricos, la palabra clave opcional UNSIGNED puede seguir.
        Para el tipo TEXT, la longitud a considerar para la indexación puede ser añadida.
       
          unique: bool, (opcional) true si el campo debe ser existente en el documento.
          Por omisión es false, excepto para GEOJSON donde por omisión es true.
         
          options: integer, (opcional) flags de opciones especiales a utilizar
          al decodificar datos GEOJSON.
        
          srid: integer, (opcional) valor srid a utilizar al
          decodificar datos GEOJSON.
        
Es un error incluir otros campos no descritos anteriormente en los documentos IndexDefinition o IndexField.
Ejemplo #1 Ejemplo de mysql_xdevapi\Collection::createIndex()
<?php
$session = mysql_xdevapi\getSession("mysqlx://user:password@localhost");
$session->sql("DROP DATABASE IF EXISTS addressbook")->execute();
$session->sql("CREATE DATABASE addressbook")->execute();
$schema     = $session->getSchema("addressbook");
$collection = $schema->createCollection("people");
// Crear un índice de texto
$collection->createIndex(
  'myindex1',
  '{"fields": [{
    "field": "$.name",
    "type": "TEXT(25)",
    "required": true}],
    "unique": false}'
);
// Un índice espacial
$collection->createIndex(
  'myindex2',
  '{"fields": [{
    "field": "$.home",
    "type": "GEOJSON",
    "required": true}],
    "type": "SPATIAL"}'
);
// Índice con múltiples campos
$collection->createIndex(
  'myindex3',
  '{"fields": [
    {
      "field": "$.name",
      "type": "TEXT(20)",
      "required": true
    },
    {
      "field": "$.age",
      "type": "INTEGER"
    },
    {
      "field": "$.job",
      "type": "TEXT(30)",
      "required": false
    }
  ],
  "unique": true
  }'
);