本文介绍GBase 8a MPP数据库集群全文索引FULLTEXT的创建索引,更新索引和删除索引的方法。
目录导航
参考
GBase 8a全文索引功能安装部署方法
GBase 8a全文索引创建、更新和删除方法
GBase 8a全文索引常用配置文件和配置参数
GBase 8a全文索引提高模糊查询性能使用样例
GBase 8a全文索引多分词器的功能介绍和使用
创建全文索引
CREATE FULLTEXT INDEX index_name ON table_name (column_name) [INDEX_DATA_PATH='path'] [WITH PARSER seg_name]
- index_name : 全文索引名字,一张表内必须唯一
- table_name : 表名字
- column_name :列名字,只支持单列
- INDEX_DATA_PATH:可选项,设置索引数据路径标志。如不填写,则索引数据保存在默认路径上
- WITH PARSER :指定分词器的名字。不指定则使用默认分词器。
如下是使用默认分词器和指定分词器的样例。
gbase> create fulltext index idx_name on t1(name);
Query OK, 0 rows affected (Elapsed: 00:00:00.18)
Records: 0 Duplicates: 0 Warnings: 0
gbase> create fulltext index idx_memo on t1(memo) with parser part4;
Query OK, 0 rows affected (Elapsed: 00:00:00.16)
Records: 0 Duplicates: 0 Warnings: 0
创建指定索引数据路径的例子
gbase> create fulltext index idx_name on t1(name) INDEX_DATA_PATH='/home/gbase/gbasefulltextdata' with parser part2;
Query OK, 0 rows affected (Elapsed: 00:00:00.29)
Records: 0 Duplicates: 0 Warnings: 0
gbase> update index idx_name on t1;
Query OK, 7 rows affected (Elapsed: 00:00:01.27)
gbase> system ls -l /home/gbase/gbasefulltextdata
total 0
drwx------. 3 gbase gbase 59 Jul 1 16:46 gbase_testdb_t1_n1_C00001.FTD
drwx------. 2 gbase gbase 6 Jul 1 16:46 gbase_testdb_t1_n2_C00001.FTD
drwx------. 2 gbase gbase 6 Jul 1 16:46 gbase_vc00001_testdb_t1_C00001.FTD
gbase>
查看全文索引列表
通过show index from TABLE_NAME查看该表的索引信息。
gbase> show index from t1;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| t1 | 1 | idx_memo | 1 | memo | NULL | NULL | NULL | NULL | YES | FULLTEXT | |
| t1 | 1 | idx_name | 1 | name | NULL | NULL | NULL | NULL | YES | FULLTEXT | |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
2 rows in set (Elapsed: 00:00:00.00)
查看全文索引的建表语句
其中包含了索引数据位置,分词名字等信息。没有的则用默认值。
gbase> show create table t1;
。。。。
| t1 | CREATE TABLE "t1" (
"id" int(11) DEFAULT NULL,
"name" varchar(100) DEFAULT NULL,
"dept" int(11) DEFAULT NULL,
"birth" date DEFAULT NULL,
"memo" longtext,
FULLTEXT "idx_memo" ("memo") WITH PARSER "part4",
FULLTEXT "idx_name" ("name")INDEX_DATA_PATH='/home/gbase/gbasefulltextdata' WITH PARSER "part2"
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace' |
更新全文索引数据
UPDATE INDEX index_name ON table_name [WITH ANALYZE];
其中WITH ANALYZE分析指令,加入后更新全文索时会对不连续数据重整,提升I/O 速度,从而提升性能。但重建时需要时间和资源的,建议根据系统负载,找闲暇时定期执行。
gbase> update index idx_memo on t1;
Query OK, 7 rows affected (Elapsed: 00:00:01.10)
gbase> update index idx_name on t1;
Query OK, 7 rows affected (Elapsed: 00:00:01.15)
删除全文索引
和删除其它索引一样的语法。
DROP INDEX index_name ON table_name
gbase> drop index idx_memo on t1;
Query OK, 0 rows affected (Elapsed: 00:00:00.39)
Records: 0 Duplicates: 0 Warnings: 0
gbase> drop index idx_name on t1;
Query OK, 0 rows affected (Elapsed: 00:00:00.13)
Records: 0 Duplicates: 0 Warnings: 0