文本索引小结

来源:互联网 发布:淘宝旺铺有什么用 编辑:程序博客网 时间:2024/05/23 12:57
怎么看有没有文本索引
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_lexerSTOPLIST ctxsys.empty_stoplistSYNC (ON COMMIT)')   PARALLEL 4;select table_name from user_tables where table_name='DR$RES_HOUSE_WHLADDRX$I';

0 0
原创粉丝点击