文本索引小结

本文介绍了如何在Oracle数据库中查看和管理文本索引,包括检查文本索引类型、索引命名规则、创建CTSYS用户和CTXAPP角色、重建文本索引的步骤,以及文本索引的删除和重建过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

怎么看有没有文本索引
select index_name,ITYP_NAME,owner,index_type from  DBA_indexes where ITYP_NAME in ('CONTEXT','CTXCAT','CTXRULE','CTXXPATH');

查看一个索引是不是文本索引
 select  ITYP_NAME from DBA_indexes where index_name ='STA_BIZ_FEE_CITY0_ADDRX';
Oracle 文本索引有四种类型:CONTEXT、CTXCAT、CTXRULE 和 CTXXPATH。

文本索引的命名
select table_name from user_tables where table_name='DR$RES_HOUSE_WHLADDRX$I';
可以看到在user_tables中文本索引的命名是DR$RES_HOUSE_WHLADDRX$I,其实是系统自己加DR$和$I(I是不确定的,有见过$X)上去。如果要在dba_index中找,真正的名字应该是RES_HOUSE_WHLADDRX

如果发现没有CTXSYS用户
 e)创建 CTXSYS 用户,创建 CTXAPP 角色
    @./ctx/admin/catctx.sql ctxsys system temp nolock 
    --(密码、表空间、临时表空间、用户状态)
    --如果当前sql脚本无执行权限,请手工添加。
  f)为 CTXSYS 执行初始化工作,如果没有此操作,后续操作会失败。
    connect ctxsys/ctxsys;
    @./ctx/admin/defaults/drdefus.sql

还有一种方法是用dbca。不过一般情况下由于没有图形界面反而没有以上方法好用。
其实就是安装的时候选择oracle text


重建文本索引
1)	在测试数据库下sql window先删除文本索引RES_HOUSE_WHLADDRX:
drop index RES_HOUSE_WHLADDRX;

2)	建立文本索引规则,在command window下执行:
EXEC CTXSYS.CTX_DDL.CREATE_PREFERENCE('chinese_vgram_lexer', 'CHINESE_VGRAM_LEXER');

3)	重建文本索引,在sql window下执行:
CREATE INDEX RES_HOUSE_WHLADDRX ON RES_HOUSE
  (
    WHLADDR
  )
  INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('
    LEXER chinese_vgram_lexer
STOPLIST ctxsys.empty_stoplist
SYNC (ON COMMIT)') 
  PARALLEL 4;

select table_name from user_tables where table_name='DR$RES_HOUSE_WHLADDRX$I';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值