Oracle 全文检索测试案例.txt

wanglei 2012-11-13 测试结果 docx 不能进行检索,可能是因为有结果的过程导致的,docx自身就是 压缩的文件

office 2007 以上版本的文档都会这样。 我们也不能要求客户 转换成 doc 在上传啊 呵!

---------------------------------------------------------------------------------
连接 sys 用户       注意: system 用户不能执行 因为有的权限其他用户都没有
SQL> connect SYS/123456

安装 text 组建  这个脚本oracle已经写好了 10 及以上版本都可以直接执行了
这个很奇怪 有的时候报错 但是卸载了之后在安装就没问题了。
SQL>  @?/ctx/admin/catctx.sql CTXSYS SYSAUX TEMP NOLOCK
----------------------------------------------------------------------------------
用户解锁 有的时候会是锁的状态
SQL>  alter user CTXSYS account unlock;
 
指定默认的安装语言 连接用户
SQL>  connect CTXSYS/CTXSYS

添加语言  zhs 代表中文
SQL>  @?/ctx/admin/defaults/drdefzhs.sql
--------------------------------------------------------------------------------------------------------------
检查版本
SQL> select comp_name ,status,substr(version,1,10) as version from dba_registry  where comp_id='CONTEXT';

COMP_NAME       STATUS                 VERSION
----------     ------------        ---------------
Oracle Text      VALID                10.2.0.1.0

检查版本
 
SQL> select * from ctxsys.ctx_version;

VER_DICT   VER_CODE
---------- --------------------
10.2.0.1.0 10.2.0.1.0

检查用户对象  网上说是 366 个

SQL> select count(*) from dba_objects where owner='CTXSYS';

  COUNT(*)
----------
       339
 和网上说的 还是有些出处的
SQL> select object_type , count(*) from dba_objects where owner='CTXSYS' group b
y object_type;

OBJECT_TYPE           COUNT(*)
------------------- ----------
SEQUENCE                     3
PROCEDURE                    2
OPERATOR                     6
PACKAGE                     71
PACKAGE BODY                58
LIBRARY                      1
LOB                          1
TYPE BODY                    7
FUNCTION                     5
VIEW                        54
INDEXTYPE                    4
TABLE                       37
INDEX                       46
TYPE                        44

已选择14行。      
      
status 都是 VALID 就可以了
     
SQL> select status , count(*) from dba_objects where owner='CTXSYS' group by status ;

STATUS    COUNT(*)
------- ----------
VALID          339
------------------------------------------------------------------------------------------------------
授权  为将要使用全文检索的用户授权 CTXAPP 角色

SQL>  connect CTXSYS/CTXSYS

 grant CTXAPP to hxbank ;
 
 SQL>  connect CTXSYS/CTXSYS
--------------------------------------------------------------------------------------------------
 声明 URL_PREF 这个就是说 使用网络路径  File_PREF 指本地路径 但是一般文件系统与数据库不会再一台机器上
 
 SQL> begin
  2  ctx_ddl.create_preference('URL_PREF','URL_DATASTORE');
  3  ctx_ddl.set_attribute('URL_PREF','Timeout','300');
  4  end;
  5  /
 
---------------------------------------------------------------
  创建表
 
create table hx_upfiles (
id number(22) ,   --主键
filename varchar2(1000),  --文件名,转换成16进制的
fileinitname varchar2(1000),  --客户端原来的文件名
tablepk_value varchar2(100), --附件所属表的 主键 值
tablepk_col  varchar2(100),--附件所属表的 主键 列名
table_annx1  varchar2(100),--附件所属表的 附件 列名
table_annx2  varchar2(100),--附件所属表的 附件 列名
table_annx3  varchar2(100),--附件所属表的 附件 列名
table_annx4  varchar2(100),--附件所属表的 附件 列名
tablename varchar(200), --附件所属表名
urlfile varchar2(3000) , --附件完整的URL
fileType varchar2(100) , --文件类型 text - txt ;IGNORE - 不进行索引 ;BINARY - pdf,doc
createtime char(19),   --创建时间
constraint pk_hx_upfiles primary key (id)
);
create index in_hx_upfiles_1 on hx_upfiles(fileinitname);
create index in_hx_upfiles_2 on hx_upfiles(tablename);
create index in_hx_upfiles_3 on hx_upfiles(createtime);
// http html测试
insert into hx_upfiles(id,urlfile) values(1,'http://192.168.0.10:10001');
// ftp doc  测试
insert into hx_upfiles(id,urlfile,fileType) values(2,'ftp://wanglei:123456@192.168.0.117/N6330_D0F2D1D4BCB0CAB9D3C3CBB5C3F7CEACBBA42DD0DEB8C4CEC4B5B5.doc','BINARY');
// ftp html 测试
insert into hx_upfiles(id,urlfile) values(3,'ftp://wanglei:123456@192.168.0.117/123.html');
// http doc 测试
insert into hx_upfiles(id,urlfile,fileType) values(4,'http://127.0.0.1:9001/hxbank/N6330_D0F2D1D4BCB0CAB9D3C3CBB5C3F7CEACBBA42DD0DEB8C4CEC4B5B5.doc','BINARY');
// http Servlet doc 测试
insert into hx_upfiles(id,urlfile,fileType) values(5,'http://127.0.0.1:9001/hxbank/DownLoadFileServlet?pathtype=upload&filename=/20121102/N6330_D0F2D1D4BCB0CAB9D3C3CBB5C3F7CEACBBA42DD0DEB8C4CEC4B5B5.doc','BINARY');
// ftp docx 测试(失败)
insert into hx_upfiles(id,urlfile,fileType) values(6,'ftp://wanglei:123456@192.168.0.117/123456.docx','BINARY');
// ftp wps  测试
insert into hx_upfiles(id,urlfile,fileType) values(7,'ftp://wanglei:123456@192.168.0.117/1234.wps','BINARY');

-------------------------------------------------------------------------------------------------------------------------------------------------
建立索引

设置过滤器 因为没有全自动的过滤器 所以 增加文件类型标示列 filetype ;  TEXT - txt ;IGNORE - 不进行过滤 ;BINARY - pdf,doc,wps 等
alter table HX_UPFILES add fileType varchar2(100)
//使用 网络 类型 , 自动解析器 , 按照  filetype 列 进行解析
create index in_HX_UPFILES_URLFILE on HX_UPFILES(URLFILE) indextype is ctxsys.context parameters('DATASTORE URL_PREF filter ctxsys.auto_filter format column filetype');

//重新构建 索引 这部需要手动  所以需要用户有执行 存储过程的权限 exec
alter index in_HX_UPFILES_URLFILE  rebuild

select * from HX_UPFILES where contains(URLFILE,'文件')>0;

查询
-----------------------------------------------------------------------------------------------------------------------------------------------------
其他可能使用的脚本

删除脚本
drop index in_HX_UPFILES_URLFILE

删除text 组建
@?/ctx/admin/catnoctx.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值