用MySQL全文索引给FeedDB打造一个搜索引擎

系统 1853 0

用MySQL全文索引给FeedDB打造一个搜索引擎 - 杂项其他 - python.cn(news, jobs)

用MySQL全文索引给FeedDB打造一个搜索引擎

发布时间:2012-05-16 22:14:56,
关注:+531,
赞美:+4,
不爽:+0

本文标签:
mysql

原始出处:
Xiaoxia[PG]

效果图,欢迎测试  http://feed.readself.com/

用MySQL全文索引给FeedDB打造一个搜索引擎_第1张图片

 

samhjn    同学在上一篇文章评论中表示  Feed Database  的搜索功能不好使。原因是之前我没有太注重搜索上的优化,所以这个功能的体验很差。例如输入 “xiaoxia” 结果搜出一大堆 “xiaoxiao” 的网站,排名还比我的博客靠前,挺失望的!不过,今天的工作就是把这个功能给完善了!现在已经不是之前那个单纯在MySQL里使用like '%keyword%'查找那么简陋了。而且搜索速度也大大提升,不再像之前那样慢。

只要你输入关键字“xiaoxia”进行搜索,绝对不会出现“xiaoxiao”的结果了,因为这是两个不同的名字。

用MySQL全文索引给FeedDB打造一个搜索引擎_第2张图片

 

同时,你输入的关键词还会被拆分,例如“吸血鬼小说”会被拆分成“吸血鬼”和“小说”。排序方式为先按匹配词数,再按BR值(被友情链接数量)排序。

 

提到搜索引擎技术就离不开分词和索引,在分词上,我使用的是  mmseg  的中文分算法和搜狗的词库,分词速度快的惊人。以至于我处理数据的瓶颈在MySQL数据库上。我使用了MySQL的fulltext索引功能,在检索效率上可能没有sphinx那么快,但是对于10万个条目以内的数据库,速度已经足够了。为了达到精确查找的目的,我只对网站链接和标题两个属性进行了索引,fulltext的索引数据占用的空间也不多,才不到10M,挺环保的。

用MySQL全文索引给FeedDB打造一个搜索引擎_第3张图片

对网站标题进行分词之后,连同需要建立索引的链接,一起搬到了一个叫feed_index的索引表中。

下面是未分词的一段数据:

用MySQL全文索引给FeedDB打造一个搜索引擎_第4张图片

分词之后的数据:

用MySQL全文索引给FeedDB打造一个搜索引擎_第5张图片

目前这个分词效果还是挺满意的。另外,在最近看的一本搜索引擎相关的书籍中,提到了一种不依赖于词库的分词方法,能够应付一些新生的词汇,有空研究一下。如果两种方法都结合起来,应该能够达到更好的效果  :)

夜已深,明天继续研究!

用MySQL全文索引给FeedDB打造一个搜索引擎


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论