CREATE TABLE ステートメントを実行して、既存のテーブルまたは検索インデックスのマッピングテーブルを作成できます。マッピングテーブルを作成する場合は、フィールド名、フィールドタイプ、および主キーを指定し、マッピングテーブルを使用してデータを照会するときに使用されるエンジンを設定する必要があります。このトピックでは、既存の検索インデックスのマッピングテーブルを作成する方法について説明します。
既存のテーブルのマッピングテーブルを作成する方法の詳細については、テーブルのマッピングテーブルを作成するを参照してください。
背景情報
CREATE TABLE ステートメントを実行してデータテーブルのマッピングテーブルを作成すると、データテーブルに対して異なるタイプのインデックスが作成される場合があります。マッピングテーブルを使用してデータを照会すると、SQL エンジンはビジネス要件に合わせて、データテーブルの主キー、セカンダリインデックス、または検索インデックスを自動的に選択します。SQL で CREATE TABLE ステートメントを実行して、指定された検索インデックスのマッピングテーブルを作成し、指定された検索インデックスを選択してクエリを実行できるようにすることができます。
構文
CREATE TABLE [IF NOT EXISTS] user_defined_name(column_name data_type [,column_name data_type])
ENGINE='searchindex',
ENGINE_ATTRIBUTE='{"index_name": index_name, "table_name": table_name}';
パラメーター
パラメーター | 必須 | 説明 |
IF NOT EXISTS | いいえ | 成功レスポンスが返されるかどうかを指定します。IF NOT EXISTS を指定すると、テーブルが存在するかどうかに関係なく、成功レスポンスが返されます。それ以外の場合は、テーブルが存在しない場合にのみ成功レスポンスが返されます。 |
user_defined_name | はい | 検索インデックスのマッピングテーブルの名前。この名前は、SQL でマッピングテーブルを識別するために使用されます。 この名前は SQL 操作に使用されます。 |
column_name | はい | 属性列の名前。 SQL の列名は、Tablestore テーブルの列名と同じである必要があります。たとえば、Tablestore テーブルの列名が Aa の場合、SQL の列名は Aa、AA、aA、または aa である必要があります。 |
data_type | はい | 列のデータ型 (BIGINT、DOUBLE、BOOL など)。 SQL の列のデータ型は、Tablestore テーブルの列のデータ型と一致する必要があります。データ型マッピングの詳細については、データ型マッピングを参照してください。 |
ENGINE | はい | マッピングテーブルを使用してデータを照会するときに使用される実行エンジン。デフォルト値: tablestore。有効な値:
|
ENGINE_ATTRIBUTE | はい | 実行エンジンの属性。このパラメーターの値は JSON 形式で、次の項目が含まれます。
|
例
exampletable1 データテーブルに対して作成された exampletable1_index 検索インデックスに対して、search_exampletable1 という名前のマッピングテーブルを作成します。マッピングテーブルには、id、colvalue、および content 列が含まれます。id 列は BIGINT 型で、colvalue 列と content 列は MEDIUMTEXT 型です。
CREATE TABLE search_exampletable1(id BIGINT, colvalue MEDIUMTEXT, content MEDIUMTEXT) ENGINE='searchindex' ENGINE_ATTRIBUTE='{"index_name": "exampletable1_index", "table_name": "exampletable1"}';
search_exampletable1 マッピングテーブルを作成した後、次の操作を実行できます。
テーブルに関するインデックス情報を照会する
search_exampletable1 マッピングテーブルに関するインデックス情報を照会します。
SHOW INDEX IN search_exampletable1;
テーブルに関するインデックス情報を照会する方法の詳細については、テーブルのインデックス情報を照会するを参照してください。
指定された文字列に一致するデータを照会する
search_exampletable1 マッピングテーブルを使用して、content 列の値が「tablestore cool」文字列をトークン化して取得したトークンの少なくとも 1 つに一致する行を照会します。最大 10 行が返され、クエリ条件を満たす各行で id 列と content 列が返されるように指定します。
SELECT id,content FROM search_exampletable1 WHERE TEXT_MATCH(content, "tablestore cool") LIMIT 10;
FAQ
関連情報
検索インデックスのマッピングテーブルを作成した後、SELECT ステートメントを実行してテーブル内のデータの照会と分析を行うことができます。詳細については、データの照会、検索インデックスの配列型、検索インデックスでサポートされている NESTED、全文検索、および検索インデックスの仮想列を参照してください。
データテーブルの属性列が変更された場合は、マッピングテーブルの属性列を変更する前に、検索インデックスの属性列を変更する必要があります。
ビジネス要件に基づいて、検索インデックスの属性列を変更する方法を選択します。
スキーマを動的に変更して、検索インデックスのフィールドを変更します。詳細については、検索インデックスのスキーマを動的に変更するを参照してください。
検索インデックスを削除し、検索インデックスを再作成します。詳細については、検索インデックスを作成するを参照してください。
ビジネス要件に基づいて、マッピングテーブルの属性列を変更する方法を選択します。
ALTER TABLE
ステートメントを実行して、マッピングテーブルの属性列を変更します。詳細については、マッピングテーブルの属性列を更新するを参照してください。マッピングテーブルを削除し、マッピングテーブルを再作成します。
テーブルの説明を照会する場合は、
DESCRIBE
ステートメントを実行できます。詳細については、テーブルに関する情報を照会するを参照してください。マッピングテーブルが不要になった場合は、
DROP MAPPING TABLE
ステートメントを実行してマッピングテーブルを削除できます。詳細については、マッピングテーブルを削除するを参照してください。テーブルに関するインデックス情報を表示する場合は、
SHOW INDEX
ステートメントを実行できます。詳細については、テーブルのインデックス情報を照会するを参照してください。現在のデータベース内のマッピングテーブルの名前を一覧表示する場合は、
SHOW TABLES
ステートメントを実行できます。詳細については、テーブル名を一覧表示するを参照してください。