Создаёт индекс для коллекции

# Collection::createIndex

(No version information available, might only be in Git)

Collection::createIndex — Создаёт индекс для коллекции

### Описание

public function mysql_xdevapi\Collection::createIndex(string `$index_name`, string `$index_desc_json`): void

Создаёт индекс для коллекции.

Выдаётся исключение, если индекс с таким именем уже существует, или если определение индекса сформировано неправильно.

### Список параметров

`index_name`

  Имя индекса, который нужно создать. Должно быть корректным именем индекса, допустимым для SQL-запроса `CREATE INDEX`.

`index_desc_json`

  Определение индекса для создания. Содержит массив объектов IndexField, и каждый объект описывает один элемент документа для добавления в индекс, а также необязательную строку для типа индекса, который может быть INDEX (по умолчанию) или SPATIAL.

  Одно описание IndexField состоит из следующих полей:

  - `field`: строка, полный путь документа к элементу документа или полю для индексации.

  - `type`: строка, один из поддерживаемых типов столбцов SQL для сопоставления поля. Для числовых типов может быть добавлено необязательное ключевое слово UNSIGNED. Для типа TEXT может быть добавлена длина, учитываемая для индексации.

  - `required`: логическое значение, (необязательное) true, если поле должно быть обязательным в документе. По умолчанию используется значение `false`, за исключением типа `GEOJSON`, где по умолчанию используется значение `true`.

  - `options`: целое число, (необязательное) флаги специальных опций для использования при декодировании данных `GEOJSON`.

  - `srid`: целое число, (необязательное) значение srid для использования при декодировании данных `GEOJSON`.

  Ошибочно включать другие поля, не описанные выше, в документы IndexDefinition или IndexField.

### Возвращаемые значения

### Примеры

Пример #1 Пример использования 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");

    // Создание текстового индекса
    $collection->createIndex(
      'myindex1',
      '{"fields": [{
        "field": "$.name",
        "type": "TEXT(25)",
        "required": true}],
        "unique": false}'
    );

    // Пространственный индекс
    $collection->createIndex(
      'myindex2',
      '{"fields": [{
        "field": "$.home",
        "type": "GEOJSON",
        "required": true}],
        "type": "SPATIAL"}'
    );

    // Индекс с несколькими полями
    $collection->createIndex(
      'myindex3',
      '{"fields": [
        {
          "field": "$.name",
          "type": "TEXT(20)",
          "required": true
        },
        {
          "field": "$.age",
          "type": "INTEGER"
        },
        {
          "field": "$.job",
          "type": "TEXT(30)",
          "required": false
        }
      ],
      "unique": true
      }'
    );

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open