Oracle全文索引的查询模板功能可以对在CONTEXT索引上使用CATSEARCH语法,或者在CTXCAT索引上使用CONTAINS语法。
Oracle数据库Text单字无法全文搜索---如果项目需要在Oracle数据库下面做全文搜索,你可以选择Oracle自带的全文组件OracleText,从定义索引器(CHINESE_VGRAM_LEXER),建立CTXCAT索引,使用CATSEARCH查询一切都很顺利地进行,但是当加上中文分词后总不经意地抛出异常,提示:
ORA-29902:执行ODCIIndexStart() 例行程序中出错;
ORA-20000:Oracle Text Error;
DRG-10847:CATSEARCH 要求这种类型的查询有前缀索引;
现象:我对一个列建了CTXCAT索引
创建索引的语句:
DROP INDEX ST_ITEM_ITEM_NAME;
CREATE INDEX ST_ITEM_ITEM_NAME
ON ST_ITEM (ITEM_NAME)
INDEXTYPE IS CTXSYS.CTXCAT
PARAMETERS ( 'LEXER CTXSYS.CHINESE_VGRAM_LEXER ');
然后使用如下语句查询
select count(*) from ST_ITEM where catsearch(name, '我 ',null)> 0
报错:
ORA-29902: 执行 ODCIIndexStart() 例行程序中出错
ORA-20000: Orac