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

来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:19 点击:

--继续插入数据

Insert into docs values(4, <html>los angeles is a city in california.</html>);

Insert into docs values(5, <html>mexico city is big.</html>);

commit;

Select id, text from docs where contains(text, city) > 0;--新插入的数据没有查询到

 

id text

--------------------------------------------

2 <html>paris is a city in france.</html>

 

 

--索引同步

begin

ctx_ddl.sync_index(idx_docs, 2m);  --使用2M同步索引

end;

--查询

Column text format a50;

Select id, text from docs where contains(text, city) > 0; --查到数据

id text

-----------------------------------------------

5 <html>mexico city is big.</html>

4 <html>los angeles is a city in california.</html>

2 <html>paris is a city in france.</html>

 

 

-- or 操作符

Select id, text from docs where contains(text, city or state ) > 0;

--and 操作符

Select id, text from docs where contains(text, city and state ) > 0;

或是

Select id, text from docs where contains(text, city state ) > 0;

 

--score 表示得分,分值越高,表示查到的数据越精确

SELECT SCORE(1), id, text FROM docs WHERE CONTAINS(text, oracle, 1) > 0;

Context 类型的索引不会自动同步,这需要在进行Dml 后,需要手工同步索引。与context 索引相对于的查询操作符为contains

 

2.2 Ctxcat 索引

用在多列混合查询中

Ctxcat 可以利用index set 建立一个索引集,把一些经常与ctxcat 查询组合使用的查询列添加到索引集中。比如你在查询一个商品名时,还需要查询生产日期,价格,描述等,你可可以将这些列添加到索引集中。oracle 将这些查询封装到catsearch 操作中,从而提高全文索引的效率。在一些实时性要求较高的交易上,context 的索引不能自动同步显然是个问题,ctxcat则会自动同步索引

 

 

例子:

Create table auction(Item_id number,Title varchar2(100),Category_id number,Price number,Bid_close date);

Insert into auction values(1, nikon camera, 1, 400, 24-oct-2002);

Insert into auction values(2, olympus camera, 1, 300, 25-oct-2002);

Insert into auction values(3, pentax camera, 1, 200, 26-oct-2002);

Insert into auction values(4, canon camera, 1, 250, 27-oct-2002);

Commit;

 

 

/

--确定你的查询条件(很重要)

--Determine that all queries search the title column for item descriptions

--建立索引集

begin

ctx_ddl.create_index_set(auction_iset);

ctx_ddl.add_index(auction_iset,price); /* sub-index a*/

end;

--建立索引

Create index auction_titlex on auction(title) indextype is ctxsys.ctxcat

parameters (index set auction_iset);

Column title format a40;

Select title, price from auction where catsearch(title, camera, order by price)> 0;

 

 

Title price

--------------- ----------

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

推荐热点

  • 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