すべてのプロダクト
Search
ドキュメントセンター

Lindorm:CREATE INDEX

最終更新日:May 30, 2025

Lindorm は、2 種類の効率的で使いやすいインデックスを提供します。セカンダリインデックスと検索インデックスです。これらのインデックスは、プライマリキーが一致に使用されないクエリと多次元クエリに個別に適用できます。CREATE INDEX 構文を使用してインデックスを作成する場合、インデックスタイプを指定し、インデックスに属性を追加できます。

適用可能なエンジンとバージョン

CREATE INDEX 構文は、LindormTable のすべてのバージョンに適用できます。

重要

CREATE INDEX 構文を使用して [検索インデックス] または [列ストアインデックス] を作成するには、Lindorm SQL のバージョンが 2.6.1 以降である必要があります。 Lindorm SQL バージョンの表示方法の詳細については、「SQL バージョン」をご参照ください。

構文

create_index_statement   ::=  CREATE INDEX [IF NOT EXISTS] [ index_identifier ]
                              [ USING index_method_definition ]
                              ON table_identifier '(' index_key_expression ')'
                              [ INCLUDE include_expression]
                              [ PARTITION BY partition_definition ]
                              [ { ASYNC | SYNC} ]
                              [ WITH '(' index_options  ')' ]
index_method_definition  ::=  { KV | SEARCH | COLUMNAR }
index_key_expression     ::=  '('
                                  index_key_definition 
                                  |wildcard_string_literal                                 
                              ')'

index_key_definition     ::= {
                                  column_identifier [ DESC ]
                                  | column_identifier'(' column_options ')'
                                  | function_expression
                             }
                             [ (',' index_key_definition)* ]
column_options    ::=  '(' 
                           option_definition (',' option_definition )* 
                       ')'
function_expression      ::=  function_identifier 
                              '(' 
                                  column_identifer ( ',' column_identifer )* 
                              ')'
option_definition        ::=  option_identifer '=' string_literal
include_expression       ::=  '(' 
                                  column_identifier( ',' column_identifier )*
                              ')'
partition_definition     ::= {
                                {RANGE TIME} 
                                     '(' 
                                          column_identifer 
                                     ')' [ PARTITIONS number_literal ]
                                |
                                HASH '(' 
                                          column_identifer 
                                          ( ',' column_identifer )*
                                     ')' [ PARTITIONS number_literal ]
                                |
                                ENUMERABLE 
                                     '(' 
                                          column_identifer 
                                          ( ',' column_identifer )*
index_options            ::=  '(' 
                                  option_definition (',' option_definition )* 
                              ')'

サポートされているパラメータ

LindormTable では、CREATE INDEX 構文を使用して、2 種類のインデックス(セカンダリインデックスと検索インデックス)を作成できます。

次の表に、各タイプのインデックスを作成するときにサポートされるパラメータを示します。

パラメータ

セカンダリインデックス

検索インデックス

インデックスタイプ (index_method_definition)

インデックスキー式 (index_key_expression)

含まれる列 (include_expression)

✖️

インデックスパーティション化 (partition_definition)

✖️

インデックス作成方法 (ASYNC|SYNC)

重要

LindormTable 2.6.3 以降のバージョンのみが SYNC 作成方法をサポートしています。

インデックス属性 (index_options)

パラメータ

ワイドテーブルには、最大 3 つのセカンダリインデックスと 1 つの検索インデックスを作成できます。

インデックスタイプ(index_method_definition)

インデックスを作成するときに、USING キーワードを使用して、インデックスタイプを指定できます。次の表に、LindormTable でサポートされているさまざまなタイプのインデックスを作成するときに、このパラメータに設定できる値を示します。

パラメータ値

インデックスタイプ

説明

KV

セカンダリインデックス

デフォルトでは、CREATE INDEX ステートメントでインデックスタイプを明示的に指定しない場合、セカンダリインデックスが作成されます。セカンダリインデックスの詳細については、「セカンダリインデックス」をご参照ください。

重要

インスタンスに対して同時に作成できるセカンダリインデックスは 8 つだけです。セカンダリインデックスを作成しようとしたときに 8 つのセカンダリインデックスが作成されている場合、インデックスの作成は失敗します。

SEARCH

検索インデックス

検索インデックスは、LindormSearch に基づく全文検索に使用されます。検索インデックスは、単語分割、あいまい検索、集計分析、ソートとページングなど、複雑な多次元クエリのシナリオに適しています。詳細については、「概要」をご参照ください。

検索インデックスは、DATE、TIME、および DECIMAL を除くすべての基本データ型をサポートしています。サポートされているデータ型の詳細については、「基本データ型」をご参照ください。

重要
  • 検索インデックスを作成する前に、インスタンスの検索インデックスを有効にする必要があります。検索インデックスを有効にすると、LindormSearch ノードと LTS ノードの料金が発生します。詳細については、「検索インデックス機能を有効にする」をご参照ください。

  • 検索インデックスのキーには、プライマリキーに含まれていない列が含まれている必要があります。

  • Lindorm インスタンスに作成できる検索インデックスの数に制限はありません。

インデックスキー式(index_key_expression)

1 つの列または複数の列をインデックスキーとして定義できます。複数のインデックスキーで構成されるインデックスは、複合インデックスとも呼ばれます。

インデックスキー定義(index_key_definition)

このパラメータを使用して、検索インデックスのインデックスキーに属性を追加できます。また、このパラメータを使用して、インデックスキーを関数式として指定することもできます。

検索インデックスのインデックスキー属性(option_definition)

ALTER INDEX 構文を使用してインデックス列を追加するときに、インデックスキーの属性を指定できます。たとえば、ALTER INDEX ステートメントで c3(type=text,analyzer=ik) を指定して c3 列のインデックスを作成し、c3 列に IK アナライザを使用するように指定できます。

次の表に、検索インデックスでサポートされているインデックスキー属性を示します。

属性

データ型

説明

indexed

STRING

インデックスキーで指定された列の転置インデックスを作成するかどうかを指定します。

  • true (デフォルト): 転置インデックスを作成します。

  • false: 転置インデックスを作成しません。

rowStored

STRING

生データを保存するかどうかを指定します。有効な値:

  • true: 生データを保存します。

  • false (デフォルト): 生データを保存しません。

columnStored

STRING

列構造を使用してデータのソートと分析を高速化するかどうかを指定します。有効な値:

  • true (デフォルト): 列構造を使用します。

  • false: 列構造を使用しません。

type

STRING

データ型。アナライザを使用する場合は、関連フィールドのこの属性を text に設定します。他のシナリオでは、デフォルトで、この属性の値をワイドテーブルのデータ型に設定します。

重要

type 属性は、analyzer 属性と一緒に設定する必要があります。

analyzer

STRING

使用するアナライザ。有効な値:

  • standard

  • english

  • ik

  • whitespace

  • comma

重要

analyzer 属性は、type 属性と一緒に設定する必要があります。

mapping

STRING

カスタムインデックスキー属性。この属性の値は、JSON オブジェクトを表す文字列です。この属性は、LindormSearch の構文と互換性があります (Elasticsearch と互換性があります)。

重要
  • mapping 属性は、LindormSearch (Elasticsearch と互換性があります) にのみ適用できます。

  • mapping 属性を指定すると、インデックスキーの他の属性は無効になります。

セカンダリインデックス関数式(function_expression)

  • セカンダリインデックスを作成するときに、インデックスキーを関数式として指定できます。サポートされている関数は、Z-ORDER、S2、CAST、MD5、および SHA256 の 5 つです。

    重要

    MD5 または SHA256 関数を含む式をインデックスキーとして指定できるのは、LindormTable 2.6.7.5 以降のバージョンのみです。コンソールで LindormTable をアップグレードできない場合は、テクニカルサポート (DingTalk ID: s0s3eg3) にお問い合わせください。

    • Z-ORDER: 1 つ以上の時空間列の時空間セカンダリインデックスを作成します。構文:

      Z-ORDER '(' column_identifier ( ',' column_identifer )*  ')'

      column_identifer で指定された列は、時空間列である必要があります。時空間インデックスの詳細については、「時空間インデックス」をご参照ください。

    • CAST: データ型が変換された列のインデックスを作成します。構文:

      CAST(column_identifier AS type)

      上記の構文で、type は、列のデータが変換されるデータ型を指定します。詳細については、「基本データ型」をご参照ください。

    • S2: 時空間データを含む列の S2 セカンダリインデックスを作成します。構文:

      S2 '(' column_identifier, level ')'

      column_identifer のデータ型は、POLYGON または MULTIPOLYGON である必要があります。level の値の範囲は [1,30] です。詳細については、「S2 インデックス作成関数」をご参照ください。

    • MD5: VARCHAR データを含む列の MD5 ハッシュのインデックスを作成します。構文:

      MD5(column_identifier)

      詳細については、「MD5」をご参照ください。

    • SHA256: VARCHAR データを含む列の SHA256 ハッシュのインデックスを作成します。構文:

      SHA256(column_identifier)

      詳細については、「SHA256」をご参照ください。

ワイルドカード定数(wildcard_string_literal)

検索インデックスのみがワイルドカード定数 (*) をサポートしています。

ワイルドカード定数 (*) を使用して、すべての列のインデックスを作成できます。例: CREATE INDEX IF NOT EXISTS idx5 USING SEARCH ON test(*);

重要
  • インデックスの作成後にテーブルに追加された列は、検索インデックスまたは列ストアインデックスに自動的に追加されません。ALTER INDEX ステートメントを実行して、列をインデックスに手動で追加する必要があります。

  • 動的列はインデックスに含まれていません。詳細については、「動的列」をご参照ください。

含まれる列(include_expression)

含まれる列は、ベーステーブルの列と同じインデックス列です。含まれる列を持つインデックスは、カバリングインデックスとも呼ばれます。カバリングインデックスは、ベーステーブルにアクセスすることなく、インデックスにヒットするクエリに必要なすべてのデータを提供できます。これにより、クエリのパフォーマンスを確保できます。

説明

WITH キーワードを使用して、テーブル属性を追加することで、動的列をセカンダリインデックスに含まれる列として指定できます。詳細については、「セカンダリインデックス」をご参照ください。

インデックスパーティション(partition_definition

検索インデックスのみがインデックスパーティションをサポートしています。

インデックスパーティションは、サーバーがデータを異なるパーティションに自動的に分割して保存し、データのクエリ時にパーティションをプルーニングするインデックス管理ポリシーです。

検索インデックスは、範囲パーティションとハッシュパーティションをサポートしています。詳細については、「パーティションインデックス」をご参照ください。

インデックス作成方法(ASYNC|SYNC

CREATE INDEX 構文を使用してインデックスを作成するときに、ASYNC または SYNC キーワードを指定して、インデックスを同期的に作成するか、非同期的に作成するかを指定できます。

  • ASYNC: インデックスを非同期的に作成します。この方法を使用すると、CREATE INDEX ステートメントが実行された直後にインデックスの作成が開始されます。インデックスが正常に作成されたかどうかに関係なく、CREATE INDEX ステートメントへの応答はすぐに返されます。

  • SYNC: インデックスを同期的に作成します。この方法を使用すると、CREATE INDEX ステートメントが実行された直後にインデックスの作成が開始されます。インデックスが正常に作成されるまで、CREATE INDEX ステートメントの結果は返されません。

次の表に、セカンダリインデックスと検索インデックスでサポートされている作成方法を示します。

作成方法

セカンダリインデックス

検索インデックス

ASYNC

重要

LindormTable 2.6.1 以降のバージョンでは、CREATE INDEX 構文のデフォルトのインデックス作成方法は ASYNC です。

SYNC

重要

SYNC メソッドは、LindormTable 2.6.3 以降のバージョンでのみサポートされています。

インデックス属性(index_options)

CREATE INDEX 構文を使用してインデックスを作成するときに、WITH キーワードを使用して、インデックスの属性を指定できます。次の表に、さまざまなタイプのインデックスでサポートされている属性を示します。

セカンダリインデックス

属性

データ型

説明

COMPRESSION

STRING

インデックステーブルに使用する圧縮アルゴリズム。有効な値:

  • SNAPPY

  • ZSTD

  • LZ4

INDEX_COVERED_TYPE

STRING

インデックスに含まれる列。有効な値:

  • COVERED_ALL_COLUMNS_IN_SCHEMA: ベーステーブルに事前定義されているすべての非プライマリキー列がインデックスに含まれます。

  • COVERED_DYNAMIC_COLUMNS: 事前定義されているすべての非プライマリキー列と動的列がインデックスに含まれます。

    説明
    • ステートメントで INDEX_COVERED_TYPE を指定する場合、INCLUDE 句を指定する必要はありません。

    • 動的列をインデックスに含める前に、動的列が有効になっていることを確認してください。詳細については、「動的列」をご参照ください。

INCLUDE キーワードを使用して、指定した列をインデックスに含めることができます。

STARTKEY

STRING

インデックスの開始キー。

重要

タイムスタンプ列と時空間列をインデックスの開始キーに設定することはできません。

ENDKEY

STRING

インデックスの終了キー。

重要

タイムスタンプ列と時空間列をインデックスの終了キーに設定することはできません。

NUMREGIONS

INTEGER

インデックステーブルの推定パーティション数。

重要

この属性は、タイムスタンプ列と時空間列ではサポートされていません。

検索インデックス

属性

データ型

説明

indexState

STRING

検索インデックスのステータス。有効な値:

  • ACTIVE

  • INACTIVE

  • DISABLED

numShards

INTEGER

シャードの数。デフォルト値は、検索ノード数の 2 倍です。

RANGE_TIME_PARTITION_START

INTEGER

インデックスを作成する前の日数。最初のパーティションは、インデックスを作成した時点の n 日前の時点に基づいて作成されます。日数は n の値です。この属性は、テーブルに履歴データが含まれているシナリオで指定できます。履歴データの行のタイムスタンプが、最初のパーティションの作成に基づく時点より前の場合、エラーメッセージが返されます。

説明

パーティション化されたインデックスを作成する場合は、この属性が必要です。

RANGE_TIME_PARTITION_INTERVAL

INTEGER

新しいパーティションが作成される間隔。たとえば、RANGE_TIME_PARTITION_INTERVAL を「7」に設定すると、7 日間隔でパーティションが作成されます。

説明

パーティション化されたインデックスを作成する場合は、この属性が必要です。

RANGE_TIME_PARTITION_TTL

INTEGER

パーティション内のデータの保存期間。たとえば、RANGE_TIME_PARTITION_TTL を「180」に設定すると、保存期間は 180 日になり、パーティションに 180 日以上保存されているデータは自動的に削除されます。この属性を指定しない場合、パーティションは自動的に削除されません。

説明

パーティション化されたインデックスを作成する場合は、この属性が必要です。

RANGE_TIME_PARTITION_MAX_OVERLAP

INTEGER

書き込むデータのタイムスタンプが将来の時間を示している場合、このオプションは、データが書き込まれた時点とインデックスを作成した時点の間の最大期間を指定します。単位: 日。この属性を指定しない場合、デフォルトでは最大 1 日の将来のデータを書き込むことができます。

RANGE_TIME_PARTITION_FIELD_TIMEUNIT

LONG

パーティションキー列の値の単位。デフォルト値: ms。値 ms はミリ秒を意味します。

  • この属性の値を s に設定すると、パーティションキー列の各値の長さは 10 桁になります。値 s は秒を意味します。

  • この属性の値を ms に設定すると、パーティションキー列の各値の長さは 13 桁になります。

RANGE_TIME_PARTITION_CHS

INTEGER

ホットデータとコールドデータの境界。指定された境界よりも長い期間保存されているデータは、コールドストレージにアーカイブされます。単位: 秒。たとえば、この属性を 864000 に設定すると、10 日以上保存されているデータはコールドストレージにアーカイブされます。

説明

この属性を指定しない場合、ホットデータとコールドデータの分離機能は有効になりません。この場合、すべてのデータはデフォルトでホットストレージに保存されます。

INDEX_SETTINGS

STRING

カスタムインデックス属性。この属性の値は、JSON オブジェクトを表す文字列です。この属性は、LindormSearch の構文と互換性があります (Elasticsearch と互換性があります)。

重要

INDEX_SETTINGS 属性は、LindormSearch (Elasticsearch と互換性があります) にのみ適用できます。

SOURCE_SETTINGS

STRING

検索インデックス列の生データのストレージポリシー属性。JSON 文字列として定義され、Elasticsearch_source フィールドと互換性があります。デフォルトでは、検索インデックスはインデックス列の生データを保存しません。サポートされているパラメーター:

  • enabled: 値はブール型です。true はすべてのインデックス列の生データを保存できることを示し、false はインデックス列の生データを保存できないことを示します。

重要

enabled パラメーターは、includes または excludes パラメーターと一緒に使用することはできません。

  • includes: 値は文字列配列です。この属性は、生データを保存する必要があるインデックス列の名前を指定します。* ワイルドカードを使用して複数の列を照合できます。

  • excludes: 値は文字列配列です。この属性は、生データを保存する必要がないインデックス列の名前を指定します。* ワイルドカードを使用して複数の列を照合できます。

説明

SOURCE_SETTINGS 属性は、検索エンジン GUI でデータクエリを実行する必要がある場合にのみ必要です。

次の例では、次のステートメントを実行して、test という名前のベーステーブルを作成します。

CREATE TABLE test (
  p1 VARCHAR NOT NULL,
  p2 INTEGER NOT NULL,
  c1 BIGINT,
  c2 DOUBLE,
  c3 VARCHAR,
  c4 TIMESTAMP,
  c5 GEOMETRY(POINT),
  PRIMARY KEY(p1, p2)
) WITH (CONSISTENCY = 'strong', MUTABILITY='MUTABLE_LATEST');

セカンダリインデックスに関連する例

セカンダリインデックスを非同期的に作成する

デフォルトでは、作成方法を指定しない場合、インデックスは非同期的に作成されます。

CREATE INDEX idx1 ON test(c1 desc) include(c3,c4) WITH (COMPRESSION='ZSTD');

結果を確認する

SHOW INDEX FROM test; ステートメントを実行して、インデックスが作成されたかどうかを確認できます。

複合インデックスを作成する

c1、c2、および c3 列の複合インデックスを作成します。

CREATE INDEX idx1 ON test(c1, c2, c3) include(c4) SYNC WITH ( COMPRESSION ='ZSTD');

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

すべての列をインデックスに含める

CREATE INDEX idx1 ON test(c4 desc) WITH (INDEX_COVERED_TYPE ='COVERED_ALL_COLUMNS_IN_SCHEMA');

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

すべての動的列をインデックスに含める

CREATE INDEX idx1 ON test(c4 desc) WITH (INDEX_COVERED_TYPE='COVERED_DYNAMIC_COLUMNS');

結果を確認する

SHOW INDEX FROM test; ステートメントを実行して、インデックスが作成されたかどうかを確認できます。

インデックステーブルの推定パーティション数を設定する

インデックステーブルの推定パーティション数を 32 に設定します。

CREATE INDEX idx1 ON test(c4 desc) include(c5,c6)  WITH (NUMREGIONS ='32');

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

インデックステーブルの開始キーと終了キーを指定する

開始キー 11111111 から終了キー 9999999 までの範囲で、インデックステーブルを 32 のパーティションに分割することを指定します。

CREATE INDEX idx1 ON test(c3 desc) include(c5,c6) WITH (NUMREGIONS ='32', STARTKEY ='11111111', ENDKEY = '9999999');

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

Z-ORDER セカンダリインデックスを作成する

POINT データを格納する c5 列の Z-ORDER セカンダリインデックスを作成します。

CREATE INDEX idx1 ON test(Z-ORDER(c5));

結果を確認する

SHOW INDEX FROM test; ステートメントを実行して、インデックスが作成されたかどうかを確認できます。

S2 セカンダリインデックスを作成する

  1. POINT データを格納する c5 列の S2 セカンダリインデックスを作成します。インデックスは非同期モードでのみ作成できます。

    CREATE INDEX idx1 ON test(S2(c5, 10));
  2. S2 セカンダリインデックスを構築します。

    BUILD INDEX s2_idx ON test;

結果を確認する

SHOW INDEX FROM test; ステートメントを実行して、インデックスが作成されたかどうかを確認できます。

指定した列のデータ型を変換する

データ型を INTEGER に変換した後に、c3 列のセカンダリインデックスを作成します。

CREATE INDEX idx1 ON test(CAST(c3 AS INTEGER));

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

検索インデックスに関連する例

セカンダリインデックスを非同期的に作成する

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(p1, p2, c1, c2, c3);

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

すべての列に検索インデックスを作成する

列属性を指定せずに、すべての列の検索インデックスを作成します。この場合、すべての列属性のデフォルト値が保持されます。

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test('*');

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

インデックスキーの属性を追加する

  • インデックスキーにカスタム以外の属性を追加する

    すべての列の検索インデックスを作成します。c3 列がインデックスに含まれている場合は、すべてのインデックス列に次の属性を設定します: type=text、analyzer=ik、indexed=true。

    CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test('*',c3(type=text,analyzer=ik,indexed=true));

    結果を確認する

    SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

  • インデックスキーにカスタム属性を追加する

    この例では、次のステートメントを実行して、test という名前のサンプルテーブルを作成します。

    CREATE TABLE test (
      p1 VARCHAR NOT NULL,
      p2 INTEGER NOT NULL,
      c1 BIGINT,
      c2 DOUBLE,
      c3 VARCHAR,
      c4 TIMESTAMP,
      PRIMARY KEY(p1, p2)
    ) WITH (CONSISTENCY = 'strong', MUTABILITY='MUTABLE_LATEST');

    すべての列の検索インデックスを作成します。c3 列に次の属性を設定します: type=text、analyzer=ik_max_word。

    CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test('*',c3(mapping='{
      "type": "text",
      "analyzer": "ik_max_word"
    }'));
    重要
    • mapping 属性は、LindormSearch (Elasticsearch と互換性があります) にのみ適用できます。

    • mapping 属性を指定すると、インデックスキーの他の属性は無効になります。

    結果を確認する

    SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

インデックスステータスを設定する

指定した列に検索インデックスを作成し、インデックス列属性を指定し、検索インデックスのステータスを ACTIVE に設定します。

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(c1, c3(type=text,analyzer=ik)) WITH (indexState=ACTIVE,numShards=4);

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

カスタムインデックス属性を設定する

検索インデックスを作成し、検索インデックスのステータスを ACTIVE に設定します。カスタム属性を設定して、圧縮アルゴリズムを ZSTD に設定し、データを更新する間隔を 10 秒に設定します。

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test(c1, c3(type=text,analyzer=ik)) WITH (indexState=ACTIVE,INDEX_SETTINGS='{
  "index": {
    "codec": "zstd",
    "refresh_interval": "10s"

   }
}');

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

時間ベースのパーティションを設定する

時間列 c4 に基づいてパーティションを実行します。パーティションは、30 日前から 7 日ごとに自動的に実行されます。デフォルトでは、パーティションは 90 日間保持されます。

CREATE INDEX IF NOT EXISTS idx2 USING SEARCH ON test (c1, c2, c3, c4)
PARTITION BY RANGE TIME(c4) PARTITIONS 16
WITH (indexState=ACTIVE, RANGE_TIME_PARTITION_START='30', RANGE_TIME_PARTITION_INTERVAL='7', RANGE_TIME_PARTITION_TTL='90', RANGE_TIME_PARTITION_MAX_OVERLAP='90');

結果を確認する

SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

生データを格納する

デフォルトでは、検索インデックスはデータフィルタリングにのみ使用され、インデックス列の生データは格納されません。検索インデックスを使用しているときに検索エンジンに直接アクセスする必要がある場合は、すべてのインデックス列または一部のインデックス列の生データを格納するように属性を設定できます。

  • すべてのインデックス列の生データを格納する

    c1c2c3c4 列を含む検索インデックスを作成し、すべての列の生データを格納します。

    CREATE INDEX idx2 USING SEARCH ON test(c1, c2, c3, c4) WITH (SOURCE_SETTINGS='
    {
      "enabled": true
    }  
    ');

    結果の検証

    SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。

  • 一部のインデックス列の生データを格納する

    c1c2c3c4 列を含む検索インデックスを作成し、c2c3c4 列の生データを格納します。

    CREATE INDEX idx2 USING SEARCH ON test(c1, c2, c3, c4) WITH (SOURCE_SETTINGS='
    {
      "includes": ["c*"],
      "excludes": ["c1"]
    }  
    ');

    結果の検証

    SHOW INDEX FROM test; 文を実行して、インデックスが作成されたかどうかを確認できます。