JSON-индекс

JSON-индексы в строковых таблицах создаются с помощью того же синтаксиса, что и вторичные индексы, при указании json в качестве типа индекса. Подмножество доступного для JSON-индексов синтаксиса:

CREATE TABLE `<table_name>` (
    ...
    INDEX `<index_name>`
        GLOBAL
        [SYNC]
        USING json
        ON ( <json_column> )
    [,   ...]
)

Где:

  • <index_name> — уникальное имя индекса для доступа к данным.
  • SYNC — указывает на синхронное обновление индекса. Это единственный доступный для JSON-индексов режим, явно указывать не обязательно.
  • <json_column> — колонка таблицы типа Json или JsonDocument. JSON-индекс строится только по одной колонке.

JSON-индекс не поддерживает выражение COVER — попытка указать его приведёт к ошибке.

Важно

Поддерживается только для строковых таблиц. Поддержка функциональности для колоночных таблиц находится в разработке.

Пример

CREATE TABLE documents (
    id Uint64 NOT NULL,
    payload JsonDocument NOT NULL,
    INDEX json_idx GLOBAL USING json ON (payload),
    PRIMARY KEY (id)
)

В этом примере создаётся таблица documents с JSON-индексом json_idx по колонке payload. Индекс будет использоваться запросами, в предикате WHERE которых содержатся вызовы JSON_EXISTS или JSON_VALUE по колонке payload.

Предыдущая
Следующая