1,首先查看ORACLE是否已安装“全文检索工具”
通过查看是否存在 CTXSYS 用户,CTXAPP角色即可判断。
2,如果ORACLE没有安装“全文检索工具”,则使用以下步骤手工安装。
a)进入ORACLE安装目录
cd $ORACLE_HOME
b)使用 DBA 角色登陆数据库
sqlplus sys/sys as sysdba
c)查看表空间文件存放路径
select name from v$datafile;
d)为 CTXSYS 用户创建表空间
CREATE TABLESPACE ctxsys
LOGGING
DATAFILE '/disk4/o10g/oradata/ctxsys01.dbf'
SIZE 32m
AUTOEXTEND ON
NEXT 32m MAXSIZE 2048m
EXTENT MANAGEMENT LOCAL ;
e)创建 CTXSYS 用户,创建 CTXAPP 角色
@./ctx/admin/catctx.sql ctxsys ctxsys temp nolock
--(密码、表空间、临时表空间、用户状态)
--如果当前sql脚本无执行权限,请手工添加。
f)为 CTXSYS 执行初始化工作,如果没有此操作,后续操作会失败。
connect ctxsys/ctxsys;
@./ctx/admin/defaults/drdefus.sql
3,创建全文索引
a)创建词法分析器及相关表
--词法分析器
ctx_ddl.create_preference('offerProdAddrLexer','CHINESE_LEXER');
--词法
ctx_ddl.create_preference('offerProdAddrList', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('offerProdAddrList','PREFIX_INDEX','TRUE');
ctx_ddl.set_attribute('offerProdAddrList','PREFIX_MIN_LENGTH',1);
ctx_ddl.set_attribute('offerProdAddrList','PREFIX_MAX_LENGTH', 5);
ctx_ddl.set_attribute('offerProdAddrList','SUBSTRING_INDEX', 'YES');
b)创建全文索引
create index IDX_OFFER_PROD_2_ADDRDESC on inst.OFFER_PROD_2_ADDR(ADDRESS_DESC)
indextype is ctxsys.context
parameters ('DATASTORE CTXSYS.DIRECT_DATASTORE FILTER CTXSYS.NULL_FILTER LEXER offerProdAddrLexer WORDLIST offerProdAddrList');
--创建索引的过程由数据量大小来决定。
c)同步全文索引
exec ctx_ddl.sync_index('IDX_OFFER_PROD_2_ADDR_AA_DESC', '20M');
--全文索引的同步需要使用JOB来进行
阅读(3295) | 评论(0) | 转发(0) |