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
[求助]oracle Text的问题,和管理好像关系不大,知道请帮一下
-
- 帖子: 229
- 注册时间: 2007-07-01 17:36
- 系统: (En):System
- 来自: (En):address
- 联系:
[求助]oracle Text的问题,和管理好像关系不大,知道请帮一下
---
regards,
Kent
regards,
Kent
- oneleaf
- 论坛管理员
- 帖子: 10441
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
Re: [求助]oracle Text的问题,和管理好像关系不大,知道请帮一下
全文检索是基于分词索引,你查cess当然查不到,这是正常的。
oracle会把常用的索引放到cache中。
oracle会把常用的索引放到cache中。
-
- 帖子: 229
- 注册时间: 2007-07-01 17:36
- 系统: (En):System
- 来自: (En):address
- 联系:
Re: [求助]oracle Text的问题,和管理好像关系不大,知道请帮一下
这个我是知道的。lexer认为最小单位是单词。
可我问题1怎么整?我可以设置那些字符,让所有记录都满足条件,可查出来CONTAINS就是少。。。:(
客户还要求和LIKE要一样,还要快。是不是得跟他们交涉交涉了。。。
可我问题1怎么整?我可以设置那些字符,让所有记录都满足条件,可查出来CONTAINS就是少。。。:(
客户还要求和LIKE要一样,还要快。是不是得跟他们交涉交涉了。。。
---
regards,
Kent
regards,
Kent