ora-29833 索引类型不存在

ora-29833 indextype does not exist

正在为通配符搜索创建索引。

在 oracle 10g 中执行以下脚本时

CREATE INDEX sampletexttext_idx ON tablename(columnname)
INDEXTYPE IS ctxsys.context parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE');

它抛出以下异常:

ora-29833 indextype does not exist

我也试过basic_wordlist。没用

谁能建议为通配符搜索创建索引的最佳方法?

创建时似乎有些不完整。请参阅下面的操作方法:

--- 创建样本 table

drop table quick ;
create table quick 
  ( 
    quick_id number primary key, 
    text      varchar(80) 
  ); 

--- 为 'tire%'

插入包含 10 个扩展的行
insert into quick ( quick_id, text ) 
  values ( 1, 'tire tirea tireb tirec tired tiree tiref tireg tireh tirei 
tirej') ;
commit;

--- 使用 wildcard_maxterms=100

创建索引
begin 
    Ctx_Ddl.Create_Preference('wildcard_pref', 'BASIC_WORDLIST'); 
    ctx_ddl.set_attribute('wildcard_pref', 'wildcard_maxterms', 100) ;
end; 
/
create index wildcard_idx on quick(text)
    indextype is ctxsys.context 
    parameters ('Wordlist wildcard_pref') ;

--- 查询 'tire%' - 应该可以正常工作

select quick_id from quick
  where contains ( text, 'tire%' ) > 0;

drop table quick ;

参考:http://docs.oracle.com/cd/A91202_01/901_doc/text.901/a90121/cdatadi6.htm