执行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,无论表是否存在,均会返回成功;如果未指定IF NOT EXISTS,则只有当表不存在时,才会返回成功。 |
user_defined_name | 是 | 多元索引映射表名,用于唯一标识一张SQL绑定表。 后续执行SQL操作时要使用该表名。 |
column_name | 是 | 列名。 SQL中的列名必须和原始表中的列名等效,例如原始表中列名为Aa,在SQL中列名必须使用Aa、AA、aA或者aa中的一个。 |
data_type | 是 | 列的数据类型,包含BIGINT、DOUBLE、BOOL等多种数据类型。 SQL中列的数据类型必须和原始表中列的数据类型相匹配。关于数据类型映射的更多信息,请参见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后,您可以执行以下操作:
查询索引描述信息
以下示例用于查询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;
常见问题
相关文档
创建多元索引映射关系后,您可以通过SELECT语句查询与分析表中数据。更多信息,请参见查询数据、多元索引数组类型、多元索引嵌套类型、全文检索和多元索引虚拟列。
如果数据表的属性列有变化,您需要先修改多元索引属性列后再修改多元索引映射关系的属性列。
修改多元索引属性列,请根据选择合适的方式。
通过动态修改Schema功能修改多元索引字段。更多信息,请参见动态修改schema。
删除多元索引后重新创建多元索引。更多信息,请参见创建多元索引。
修改多元索引映射关系的属性列,请根据选择合适的方式。
通过
ALTER TABLE
语句直接修改映射表属性列。更多信息,请参见更新映射表属性列。删除映射表后重新创建多元索引映射关系。
如果需要查询表的描述信息,您可以通过
DESCRIBE
语句实现。更多信息,请参见查询表的描述信息。如果不再需要使用某个映射关系,您可以通过
DROP MAPPING TABLE
语句删除映射关系。更多信息,请参见删除映射关系。如果需要查看表的索引信息,您可以通过
SHOW INDEX
语句实现。更多信息,请参见查询索引描述信息。如果需要列出当前数据库中的映射表名称列表,您可以通过
SHOW TABLES
语句实现。更多信息,请参见列出映射表名称列表。