云原生多模数据库Lindorm支持通过ALTER SEARCH INDEX
新增索引列,删除索引列,修改搜索索引状态。
注意事项
- 索引表的列属性定义后,不可更改。
- 删除索引列后不支持新增相同名称的索引列。
使用说明
- 执行新增索引列或删除索引列操作后,还需要执行
REBUILD
操作。 - 索引列支持的数据类型包括:TINYINT、SMALLINT、INTEGER、INT、BIGINT、LONG、FLOAT、DOUBLE、VARCHAR、BINARY、VARBINARY、BOOLEAN。
新增索引列
语法
ALTER SEARCH INDEX [IF EXISTS] index_name ON table_name ADD COLUMNS '(' index_identifier ')'
index_identifier:
(column_name['(' column_options ')'] ',' ... column_name['(' column_options ')'])*
column_options:
option_name '=' option_value (',' option_name '=' option_value)
参数
column_options参数的说明。
参数 | 类型 | 描述 |
---|---|---|
indexed | String | 是否需要索引。
|
rowStored | String | 是否存储原始数据。
|
columnStored | String | 是否设置为列存储,用来加速排序分析。
|
type | String | 分词场景下,分词字段需要设置type参数为text,其它情况默认与宽表数据类型保持一致。
说明 需要同时与analyzer分词器使用。
|
analyzer | String | 分词场景下需要使用分词器。取值:
说明
|
示例
- 创建SCHEMA和表。如果SCHEMA和表已存在,可以跳过该步骤。
CREATE SCHEMA test; USE test; CREATE TABLE IF NOT EXISTS tbn (p1 varchar, p2 varchar, col1 bigint, col2 varchar, col3 varchar, constraint primary key (p1, p2 desc));
- 新增一个或多个索引列。
- 不指定具体列属性。
ALTER SEARCH INDEX IF EXISTS idx ON tbn ADD COLUMNS(col1,col2,col3);
- 指定具体列属性。
ALTER SEARCH INDEX IF EXISTS idx ON tbn ADD COLUMNS(col1,col2,col3(type=text,analyzer=ik));
- 不指定具体列属性。
- 有历史数据的场景,需要执行
REBUILD
操作,默认同步执行。执行后,可以在LTS页面左侧导航栏选择 ,查看REBUILD进度,具体操作请参见购买并登录LTS。ALTER SEARCH INDEX IF EXISTS idx ON tbn REBUILD;
删除索引列
语法
ALTER SEARCH INDEX [IF EXISTS] index_name ON table_name DROP COLUMNS '(' index_identifier ')'
index_identifier:
(column_name ',' ... column_name)*
示例
- 删除多个索引列,不指定具体列属性。
ALTER SEARCH INDEX IF EXISTS idx ON tbn DROP COLUMNS(col2,col3);
- 删除后,需要重新构建索引,即执行
REBUILD
操作,默认同步执行。执行后,可以在LTS页面左侧导航栏选择 ,查看REBUILD进度,具体操作请参见购买并登录LTS。ALTER SEARCH INDEX IF EXISTS idx ON tbn REBUILD;
修改搜索索引状态
语法
ALTER SEARCH INDEX [IF EXISTS] index_name ON table_name index_state_definition
[ASYNC]
index_state_definition:
REBUILD | DISABLED | UNUSABLE | USABLE
参数
index_state_definition参数的说明。
参数 | 类型 | 描述 |
---|---|---|
DISABLED | String | 禁用搜索索引,再次启用前,需要进行REBUILD 操作。
|
REBUILD | String | 重新对历史数据构建搜索索引,搜索索引构建完成后,搜索索引状态会自动变为USABLE。 |
UNUSABLE | String | 禁用搜索索引,再次启用前无需进行REBUILD 操作,因为禁用期间主表数据会同步应用到索引表。
|
USABLE | String | 启用搜索索引。 |
示例
- 禁用搜索索引。
ALTER SEARCH INDEX IF EXISTS idx ON tbn DISABLED;
- 重新对历史数据构建搜索索引,默认同步执行构建,也可以通过
ASYNC
参数指定异步执行构建。执行后,可以在LTS页面左侧导航栏选择 ,查看REBUILD进度,具体操作请参见购买并登录LTS。ALTER SEARCH INDEX IF EXISTS idx ON tbn REBUILD; ALTER SEARCH INDEX IF EXISTS idx ON tbn REBUILD ASYNC;