Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1120296
  • 博文数量: 159
  • 博客积分: 3063
  • 博客等级: 中校
  • 技术积分: 2703
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-01 01:51
文章分类

全部博文(159)

文章存档

2013年(48)

2012年(111)

分类: Oracle

2012-07-28 11:41:28

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来进行
阅读(3281) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~