-- 语法 1 CREATE INDEX idx_name ON table_name(column_name) USING INVERTED [PROPERTIES(...)] [COMMENT 'your comment']; -- 语法 2 ALTERTABLE table_name ADD INDEX idx_name(column_name) USING INVERTED [PROPERTIES(...)] [COMMENT 'your comment'];
构建倒排索引
1 2 3 4
-- 语法 1,默认给全表的所有分区 BUILD INDEX BUILD INDEX index_name ON table_name; -- 语法 2,可指定 Partition,可指定一个或多个 BUILD INDEX index_name ON table_name PARTITIONS(partition_name1, partition_name2);
查看构建速度
1 2 3 4 5
SHOW BUILD INDEX [FROM db_name]; -- 示例 1,查看所有的 BUILD INDEX 任务进展 SHOW BUILD INDEX; -- 示例 2,查看指定 table 的 BUILD INDEX 任务进展 SHOW BUILD INDEX where TableName = "table1";
删除倒排索引
1 2 3 4
-- 语法 1 DROP INDEX idx_name ON table_name; -- 语法 2 ALTERTABLE table_name DROP INDEX idx_name;
-- 2.2 content 列中同时包含 keyword1 和 keyword2 的行,而且 keyword1 keyword2 的 `词距`(slop) 不超过3 -- 'keyword1 keyword2', 'keyword1 a keyword2', 'keyword1 a b c keyword2' 都能匹配,因为keyword1 keyword2中间隔的词分别是0 1 3 都不超过3 -- 'keyword1 a b c d keyword2' 不能能匹配,因为keyword1 keyword2中间隔的词有4个,超过3 -- 'keyword2 keyword1', 'keyword2 a keyword1', 'keyword2 a b c keyword1' 也能匹配,因为指定 slop > 0 时不再要求keyword1 keyword2 的顺序。这个行为参考了 ES,与直觉的预期不一样,因此 Doris 提供了在 slop 后面指定正数符号(+)表示需要保持 keyword1 keyword2 的先后顺序 SELECT*FROM table_name WHERE content MATCH_PHRASE 'keyword1 keyword2 ~3'; -- slop 指定正号,'keyword1 a b c keyword2' 能匹配,而 'keyword2 a b c keyword1' 不能匹配 SELECT*FROM table_name WHERE content MATCH_PHRASE 'keyword1 keyword2 ~3+';
-- 3. 普通等值、范围、IN、NOT IN,正常的 SQL 语句即可,例如 SELECT*FROM table_name WHERE id =123; SELECT*FROM table_name WHERE ts >'2023-01-01 00:00:00'; SELECT*FROM table_name WHERE op_type IN ('add', 'delete');