Oracle全文检索方面的研究(全10)(2)

来源:未知 责任编辑:责任编辑 发表时间:2013-12-22 14:57 点击:

Select * from mytable1 where contains(doc1, 适宜)>0; --检索到第二条数据,这个分词虽然效率低点,但检索结果还可以

Select * from mytable1 where contains(doc1, 出门)>0;  --检索到第二条数据

Select * from mytable1 where contains(doc1, this is a word)>0;  --检索到第三条数据,中英文适用

 

 

--对于多列查询,更新列操作

--只更新从表,看是否能查到更新的信息

Update mytable1 set doc2=adladlhadad this datastore when your text is stored test where id=2;

 

--同步更新索引

Begin

Ctx_ddl.sync_index(idx_mytable);

End;

--可见,虽然你检索是三个列,但是你更新的不是索引对应的那列(doc1),同步了索引也是不起作用的

Select * from mytable1 where contains(doc1,adladlhadad)>0; --没有记录

 

--更新与doc1列原来相同内容(实际内容不变,只有操作而已)

Update mytable1 set doc1=天是蓝色的,万里无云。天气非常好。 where id=2;

 

--再同步更新索引

Begin

Ctx_ddl.sync_index(idx_mytable);

End;

 

--再查询一次

Select * from mytable1 where contains(doc1,adladlhadad)>0; --有结果,可见,对于其他查询的列(非索引对应的列)的更新操作,可以连同索引对应的列一起更新,只是不改变索引的内容即可做到同步索引就可以出现效果了。

4.2 本地磁盘检索

create table mytable3(id number primary key, docs varchar2(2000));

 

insert into mytable3 values(111555,1.txt);

 

insert into mytable3 values(111556,1.doc);

 

insert into mytable3 values(111557,1.xls);

 

insert into mytable3 values(111558,1.pdf);

 

insert into mytable3 values(111559,2.txt);

 

insert into mytable3 values(111560,2.doc);

 

insert into mytable3 values(111561,2.xls);

 

insert into mytable3 values(111562,2.pdf);

 

commit;

 

 

--先删除引用

begin

ctx_ddl.drop_preference(COMMON_DIR);

end;

 

--建立 file datastore

begin

ctx_ddl.create_preference(COMMON_DIR,FILE_DATASTORE);

ctx_ddl.set_attribute(COMMON_DIR,PATH,D:search);

end;

 

--先删除索引

drop index myindex3;

--建立索引,8个文件,内容简单,耗时1.5s

create index myindex3 on mytable3(docs) indextype is ctxsys.context parameters (datastore COMMON_DIR lexer foo.my_chinese_lexer);

 

select * from mytable3 where contains(docs,text)>0; --查询,支持txt

select * from mytable3 where contains(docs,pdf)>0; --查询,支持pdf

select * from mytable3 where contains(docs,excel)>0; --查询,支持excel

select * from mytable3 where contains(docs,word)>0; --查询,支持doc

select * from mytable3 where contains(docs,文本)>0; --查询,支持中文

select * from mytable3 where contains(docs,文档)>0; --查询,支持中文

select * from mytable3 where contains(docs,阅读)>0; --查询,支持中文pdf

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Table函数使用简介
  • Oracle数据库Constraint约束的常用操作及异常处理
  • Bulk Collect性能分析(zz)
  • export/import的使用
  • OCP043第十五讲 Database Security
  • ORACLE10gr2数据导入MySQL方案
  • oracle 让sys用户可以使用isqlplus
  • 在oracle数据库下使用iSQL*Plus DBA访问数据库
  • Oracle行列转换小结
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1