[求助]oracle Text的问题,和管理好像关系不大,知道请帮一下

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
联系:

[求助]oracle Text的问题,和管理好像关系不大,知道请帮一下

#1

帖子 sk1418 » 2009-05-06 20:54

oracle text是全文检索,在使用过程中有些疑问,来这里问问。具体请看下面。

有2个表,通过FK相连,每个表各有一个很大的字段(VCHAR2(4000)),一个表有1M记录,另一个有3M记录。
现在要做全文检索,就是这2个大字段,通过FK来JOIN 2个表。我采用了oracle text,并建立了索引,基于basic_lexer(所有保存的字符无中文)

问题:
- contains(column,'keyword')>0 和 column LIKE '%keyword%' 的结果不同,差的还挺多。为什么?怎么解决这个?
-比如一个单词 "access" 如果contains(cln, 'cess')>0查不到,但LIKE就可以,怎么解决这个区别?
-性能上的,用contains确实比LIKE要快,不过,第一次用CONTAINS,大概用30s(当然了30s也比LIKE要快),然后改变搜索关键字,就用2s,过一段时间不查询,再查询,又30秒,接着查,2秒。。。这是个什么机制?

就这些吧,请知道的给讲解一下。谢谢。

P。S。测试环境是oracle 10g express + ubuntu 804
---
regards,

Kent
头像
oneleaf
论坛管理员
帖子: 10441
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

Re: [求助]oracle Text的问题,和管理好像关系不大,知道请帮一下

#2

帖子 oneleaf » 2009-05-06 21:38

全文检索是基于分词索引,你查cess当然查不到,这是正常的。
oracle会把常用的索引放到cache中。
sk1418
帖子: 229
注册时间: 2007-07-01 17:36
系统: (En):System
来自: (En):address
联系:

Re: [求助]oracle Text的问题,和管理好像关系不大,知道请帮一下

#3

帖子 sk1418 » 2009-05-07 0:35

这个我是知道的。lexer认为最小单位是单词。
可我问题1怎么整?我可以设置那些字符,让所有记录都满足条件,可查出来CONTAINS就是少。。。:(

客户还要求和LIKE要一样,还要快。是不是得跟他们交涉交涉了。。。
---
regards,

Kent
回复