執行CREATE TABLE語句為已存在的表或者多元索引建立映射關係。本文介紹如何為已存在的多元索引建立映射關係。
背景資訊
由於執行CREATE TABLE建立表的映射關係時,資料表可能會包含多種不同的索引類型,當使用者使用映射表查詢資料時,SQL引擎會自動選擇合適的資料表主鍵查詢、二級索引或者多元索引執行查詢。為了讓使用者更清晰地選擇指定多元索引執行查詢,SQL引擎支援通過CREATE TABLE語句建立指定多元索引的映射關係。
文法
CREATE TABLE [IF NOT EXISTS] user_defined_name(column_name data_type L,column_name data_type])
ENGINE='searchindex',
ENGINE_ATTRIBUTE='{"index_name": index_name, "table_name": table_name}';
參數
參數 | 是否必選 | 說明 |
---|---|---|
IF NOT EXISTS | 否 | 如果指定IF NOT EXISTS,無論表是否存在,均會返回成功;如果未指定IF NOT EXISTS,則只有當表不存在時,才會返回成功。 |
user_defined_name | 是 | 多元索引映射表名,用於唯一標識一張SQL綁定表。
後續執行SQL操作時要使用該表名。 |
column_name | 是 | 列名。
SQL中的列名必須和原始表中的列名等效,例如原始表中列名為Aa,在SQL中列名必須使用Aa、AA、aA或者aa中的一個。 |
data_type | 是 | 列的資料類型,包含BIGINT、DOUBLE、BOOL等多種資料類型。
SQL中列的資料類型必須和原始表中列的資料類型相匹配。關於資料類型映射的更多資訊,請參見資料類型映射。 |
ENGINE | 是 | 使用映射表查詢資料時的執行引擎。取值範圍如下:
|
ENGINE_ATTRIBUTE | 是 | 執行引擎的屬性,以JSON格式表示。包括如下選項:
|
樣本
為exampletable1資料表的多元索引exampletable1_index建立多元索引映射表search_exampletable1,多元索引映射表包含id(BIGINT類型)、colvalue(MEDIUMTEXT類型)和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的描述資訊。
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;