全文检索的应用例子

如下是一个涉及到全文检索的应用例子:
1.建表,列servkeys将用到全文检索.
create table SERVICEKEY
(
SERVCODE VARCHAR2(12) not null,,
SERVKEYS VARCHAR2(2048) not null
);
2. 创建中文语义的定义
begin
ctx_ddl.create_preference('chinese_lexer','CHINESE_VGRAM_LEXER');
end;
/
3. 创建中文语义的索引
create index idx_ctx_servkey on servicekey(servkeys) indextype is ctxsys.context
parameters('lexer chinese_lexer');

4.全文检索中用于定时更新DR$idx_ctx_servkey$I、DR$idx_ctx_servkey$K、DR$idx_ctx_servkey$R和DR$idx_ctx_servkey$N表中的记录,重建索引
create or replace procedure proc_syn_ctx_index
is
begin
execute immediate
'alter index idx_ctx_servkeys rebuild online' ||
' parameters ( ''sync'' )' ;
execute immediate
'alter index idx_ctx_servkeys rebuild online' ||
' parameters ( ''optimize full maxtime unlimited'' )' ;
end proc_syn_ctx_index;
/
5.设置job,定时更新和同步优化全文检索
Set ServerOutput on
declare
v_job number;
begin
Dbms_Job.Submit
(
job => v_job,
what => 'proc_syn_ctx_index;',
next_date => sysdate, /* default */
interval => 'sysdate + 1/24'
);
Dbms_Job.Run ( v_job );
Dbms_Output.Put_Line ( 'Submitted as job # ' || to_char ( v_job ) );
end;
/

6.应用引用
SELECT * FROM SERVICEKEY
WHERE contains(SERVKEYS ,'百宝箱')>0;

备注:需授权ctxapp角色给用户.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值