在前面我们演示的是在创建表的时候创建倒排索引,但是有时候我们会涉及到此表已经存在了,那么我们需要子安后序中对倒排索引进行操作,下面我们就来列举下doris的倒排索引增删改查。
1)查看所有的倒排索引
show create table xxxx
2)删除某个倒排索引
-- 语法1 DROP INDEX idx_name ON table_name; -- 语法2 ALTER TABLE table_name DROP INDEX idx_name;
3)新增某个倒排索引
ALTER TABLE township ADD INDEX idx_name(area) USING INVERTED PROPERTIES("parser" = "chinese");
备注这里新增了倒排索引之后只会对新增加的数据添加倒排索引,历史数据不会添加倒排索引,如果我们想要历史数据添加倒排索引的话,则需要执行下面的sql
-- 语法1,默认给全表的存量数据加上倒排索引 BUILD INDEX index_name ON table_name; -- 语法2,可指定partition,可指定一个或多个 BUILD INDEX index_name ON table_name PARTITIONS(partition_name1, partition_name2);
4)使用倒排索引查询数据:
-- 1.1 logmsg中包含keyword1的行 SELECT * FROM table_name WHERE logmsg MATCH_ANY 'keyword1'; -- 1.2 logmsg中包含keyword1或者keyword2的行,后面还可以添加多个keyword SELECT * FROM table_name WHERE logmsg MATCH_ANY 'keyword1 keyword2'; -- 1.3 logmsg中同时包含keyword1和keyword2的行,后面还可以添加多个keyword SELECT * FROM table_name WHERE logmsg MATCH_ALL 'keyword1 keyword2'; -- 1.4 logmsg中同时包含keyword1和keyword2的行,并且按照keyword1在前,keyword2在后的顺序 SELECT * FROM table_name WHERE logmsg MATCH_PHRASE 'keyword1 keyword2';
以上就是我们常用的倒排索引相关的用法。
备注:
1、如果在doris中使用in not in,范围查询,等值查询的时候,对应字段如果是倒排索引字段,那么会自动使用倒排索引,不需要我们使用match相关的函数来匹配。
还没有评论,来说两句吧...