DM8 全文检索

DM8 全文检索
1.全文检索
DM 全文检索根据已有词库建立全文索引,文本查询完全在索引上进行。全文索引为在 字符串数据中进行复杂的词搜索提供了有效支持。
DM全文索引创建的过程中,用户可以为分词器定义分词参数,即控制分词器分词的数 量,包??5种分词参数:
  1. CHINESE_LEXER,中文最少分词;
  2. CHINESE_VGRAM_LEXER,机械双字分词;
  3. CHINESE_FP_LEXER,中文最多分词;
  4. ENGLISH_LEXER,英文分词;
  5. DEFAULT_LEXER,默认分词,为中文最少分词。
2.创建全文索引
    在 DM 中,全文索引必须在基表上定义,而不能在系统表、视图、临时表、列存储表、 外部表上定义。同一列只能创建一个全文索引。 DM 定义全文索引时,不需要在表上先建立 主关键字索弓 I 。仓 U 建全文索弓 I 的列类型可为 CHAR CHARACTER , VARCHAR VARCHAR2 LONGVARCHAR TEXT CLOB ,例如上节对 address 表创建的全文索弓 I 列为 VARCHAR 型。 DM 的全文索引现只支持简体中文、英文语言。较为详细的语法介绍可参考 DM8_SQL 语言使用手册》。
-- 查看
select * from CTISYS.SYSCONTEXTINDEXES ;
3.更新全文索引
    文索引本质是借助辅助关系表存储索引数据。当对基表执行数据更新操作后,数据并 不会立刻填充到辅助表中,需要用户主动同步数据用以更新全文索引,未同步到辅助表中的 记录将无法通过全文索引查询到结果。
全文索引的更新包括两种方式:完全更新和增量更新。
    完全更新
    删除原有的全文索引,对基表进行全表扫描,逐一重构索引信息.
例如执行如下 SQL 可以对 address 表的全文索引进行完全更新:
ALTER CONTEXT INDEX cti_address ON person.address REBUILD;
    增量更新
在上一次完全更新之后,表数据发生了变化,就可以使用增量更新来更新索引。
例如执行如下 SQL 可以对 address 表的全文索引进行增量更新:
ALTER CONTEXT INDEX cti_address ON person.address INCREMENT;
自动增量更新
CREATE CONTEXT INDEX cti_address    ON person . address ( address1 ) LEXER DEFAULT_LEXER SYNC TRANSACTION ;
4.使用全文索引
SELECT * FROM person.address WHERE CONTAINS(address1,'洪山区'AND '太阳城');
SELECT * FROM person.address WHERE CONTAINS(address1,'江汉区发展大道');
select * from PERSON.ADDRESS where  CONTAINS(ADDRESS.ADDRESS1,'洪山区')
and city like '%武汉市%'
;
5.删除全文索引
DROP CONTEXT INDEX cti_address ON person.address;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值