全文检索技术是智能信息管理的关键技术之一,其主要目的就是 实现对大容量的非结构化数据的快速查找,DM 实现了全文检索功能, 并将其作为 DM 服务器的一个较独立的组件,提供更加准确的全文检索功能,较好地解决了模糊查询方式带来的问题。
DM 中,全文索引必须在基表定义,而不能在系统表,视图,临时表, 列存表,外部表上定义,同一个列只能创建一个全文索引,在创建全文索引的时候,用户可以为分词器定义分词参数,即控制分词器的数量。
全文检索的中文分词依赖系统词库,该词库是只读的,不允许修改。
CHINESE_LEXER --中文最少分词
CHINESE_VGRAM_LEXER --机械双字分词
CHINESE_FP_LEXER --中文最多分词
ENGLISH_LEXER --英文分词
DEFAULT_LEXER --默认分词,中文最少分词
Select * from employee where name like '马?';
玩具和服装 #可以分为以下词组
玩具 和 服装 / 玩 玩具 和 和服 服装 装
创建全文索引后,系统会自动产生如下辅助表
I 表:CTI$INDEX_NAME$I 用来保存分词结果
P 表:CTI$INDEX_NAME$P 用来保存基表发生的增量数据变化
N 表:CTI$INDEX_NAME$N 用来保存原表记录 rowid 和新记录条记 录 DOCID 的映射关系。
D 表 :CTI$INDEX_NAME$D 保存了所有的将被删除的 docid.
创建全文索引
暂时没有找到图形化创建全文索引的地方,只能DDL语句创建
在PERSON模式下的ADDRESS表的ADDRESS1列上创建全文索引
create context index idx_add on person .address(address1) lexer default_lexer;
创建完全文索引后,在ADDRESS表的索引下,找不到创建的全文索引,查看全文索引信息在CTISYS模式--->表--->系统表--->SYSCONTEXTINDEXES
查看创建全文索引时,自动创建的4张表的数据(没有重建全文索引之前,4个表都没有数据)
select * from person.cti$idx_add$i;
select * from person.cti$idx_add$p;
select * from person.cti$idx_add$n;
select * from person.cti$idx_add$d;
alter context index idx_add on person.address rebuild; 重建全文索引表
重建完成后,再查询跟全文索引相关的4张表,i和n表会出现数据
以下3条语句查询结果一样,有了全文索引模糊查询后,比使用like更简洁
select * from person.address where contains(address1 ,'洪山区' and '太阳城' and '202');
select * from person.address where address1 like '%洪山区%' and address1 like '%太阳城%' and address1 like '%202%';
select * from person.address where contains(address1, '洪山区' and '太阳城' and '202') and city='武汉市洪山区' ;
全文索引总结
创建
create context index idx_add on person .address(address1) lexer default_lexer;
查看
select * from ctisys.syscontextindexes;
修改
全文索引更新
ALTER CONTEXT index index idx_add on person.address rebuild;
更新增加全文索引信息
ALTER CONTEXT INDEX idx_add ON PERSON.ADDRESS INCREMENT;
删除
drop context index idx_add on person.address;
4、索引维护
重建索引
可以通过图形化,右键点击索引名字,再选择重建
DDL语句
Alter index test.ind_emp rebulid;
Alter index test.ind_emp rebulid online;
注意: 新建索引,重建索引,删除索引,收集统计信息,更新统计信息,一定不在要业务高峰去做,要在业务低谷进行。
查看索引的相关信息
dba_indexes
select * from dba_indexes;
USER_INDEXES
SELECT * FROM USER_INDEXES;
删除索引(除了全文索引,所有的索引都可以图形化来操作):
DROP INDEX TEST.IND_EMP;
删除全文索引
drop context index‘索引名称’ on ‘基于哪个表创建的表名’;
历史信息:
包括 SQL 历史信息、SQL 执行节点历史信息、检查点历史信息、命令行历史信息、线程等待历史信息、死锁历史信息、回滚段历史信息、 运行时错误历史信息、DMSQL 程序中执行 DDL 语句的历史信息、返回大数据量结果集的历史信息、所有活动过线程的历史信息;
涉及的动态视图有
V$CKPT_HISTORY、V$CMD_HISTORY、 V$DEADLOCK_HISTORY,V$PLSQL_DDL_HISTORY、 V$PRE_RETURN_HISTORY,$RUNTIME_ERR_HISTORY、 V$WAIT_HISTORY,V$WTHRD_HISTORY,V$SQL_HISTORY, V$SQL_NODE_HISTORY、V$SQL_NODE_NAME 等
文章
阅读量
获赞