楼主: cactus

关键字查询问题

[复制链接]
论坛徽章:
0
11#
发表于 2002-8-1 16:59 | 只看该作者

顶一顶

这个问题比较实际,我也有需求?我想我们是不是可以考虑借助一下搜索引擎的技术呀,那位对这方面比较熟悉呀?

使用道具 举报

回复
论坛徽章:
1
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44
12#
发表于 2002-8-1 17:02 | 只看该作者
interMedia
可以把你的256字节分成很多小的单无进行索引,比正常的索引强

使用道具 举报

回复
论坛徽章:
3
ITPUB元老
日期:2005-02-28 12:57:00授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
13#
发表于 2002-8-3 10:39 | 只看该作者
interMedia的索引没有具体去看。
好像有一点,如果数据经常修改的话,你的索引必须经常重建。
(不知道是不是这样的,Oracle不知道重建这种索引)
还要看书。 :)

使用道具 举报

回复
论坛徽章:
20
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-02-13 15:11:182012新春纪念徽章
日期:2012-02-13 15:11:182012新春纪念徽章
日期:2012-02-13 15:11:182012新春纪念徽章
日期:2012-02-13 15:11:18马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:18
14#
发表于 2002-8-11 15:00 | 只看该作者
当初设计数据库的时候怎么不多想想呢。这个问题没有解决的办法,肯定慢。我看这样吧,把这个字段分解成各个小字段,然后再建索引。再修改查询条件什么的。

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
15#
发表于 2002-8-11 15:21 | 只看该作者

intermedia 索引的实际上就是 把字段拆开当表存储

然后建立索引而已

所以会出现你按几个关键字查询的时候其排列顺序并不和你输入的一样

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2005-10-30 17:05:33
16#
发表于 2002-8-11 18:35 | 只看该作者
这个问题也一直是我关心的问题,在6月份的Oracle大会上我曾向Oracle的技术人员提出这个问题,但是没有答案。如果用 like '%...%'的形式,正常的索引肯定无法用,如果字段中存放的是中文则搜索的速度比英文更慢。

我的8.1.6平台上只有8万条,当时我考虑用interMedia的索引,但是我用搜集了一下统计信息后,速度明显加快到可以承受。

但在测试平台上的interMedia索引建立了速度差不多,可能是记录条数教少的原因吧。

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2002-8-12 09:18 | 只看该作者

不要对全文检索抱过大的希望。

如果你要检索的内容是中英文混合的,你有是就会知道,结果是不令人满意的,明明存在的内容却被忽略了。检索速度倒是可以,但是可靠性就不理想了,也许是我的方法有问题吧!可我还没有看到有什么更好的方法可用。

使用道具 举报

回复
论坛徽章:
70
三菱
日期:2014-01-17 10:00:292014年世界杯参赛球队: 智利
日期:2014-06-05 11:54:32马上加薪
日期:2014-04-07 17:03:21马上有钱
日期:2014-02-25 21:39:36马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:11
18#
发表于 2002-8-12 09:44 | 只看该作者

我们的索引,搜索工具

我们用的是自己写的一个搜索工具,针对全文搜索。具体对英文效果好,中文差些。
英文的话按单词拆开,抛去常用词,然后作为关键字,每记录存一个字。对该字段建索引。
然后用一个字段记录它在文中的位置。查询时不用like,用等于,加上位置判别。

中文难做些,只能每个汉字拆开做关键字,记录每个汉字的位置,再搜。

这样做,就是数据库记录增长很快,索引一篇文章,长好几千条记录。而且,长语句的搜索会很费资源。汉字的话,一个字就是一个表连接,我们现在限定搜索关键字不能大于7个字。

现在你的情况,我觉得只能用intermedia. 重新设计系统,重写代码,投入太大了。
我也想着把我们的搜索,索引改为用interMedia.只是心里没底,不知道效果哪个好些。
你若是intemedia效果不错,告诉我一声。

使用道具 举报

回复
论坛徽章:
86
ITPUB元老
日期:2005-02-28 12:57:002012新春纪念徽章
日期:2012-01-04 11:49:542012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:202012新春纪念徽章
日期:2012-02-13 15:13:20咸鸭蛋
日期:2012-05-08 10:27:19版主8段
日期:2012-05-15 15:24:112013年新春福章
日期:2013-02-25 14:51:24
19#
发表于 2002-8-12 12:58 | 只看该作者

interMedia

因为根据 expert one  on one的描述来看
仍然是按单词拆的,一条文章可能拆成N条记录存储在另外一个表中然后做索引而已
似乎对汉字很困难

恐怕难以很好的解决问题

使用道具 举报

回复
论坛徽章:
0
20#
发表于 2002-8-14 17:43 | 只看该作者
数据确实比较多,你是否可以采用:
如果这些数据在初建时无规则,而你查询的次数较多,可以了解规则之后建立一算法,将经常要的数据按规则自建索引,再将索引存放到相关联的表的列中,当查询时就可直接通过自建算法机制查询到你要的数据。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表