首页IT科技mysql5.7全文索引(用MySQL全文索引给FeedDB打造一个搜索引擎)

mysql5.7全文索引(用MySQL全文索引给FeedDB打造一个搜索引擎)

时间2025-06-20 23:10:48分类IT科技浏览4049
导读:用MySQL全文索引给FeedDB打造一个搜索引擎...

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

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

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

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

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

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

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

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

分词之后的数据:

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

夜已深,明天继续研究!

声明:本站所有文章              ,如无特殊说明或标注                   ,均为本站原创发布                    。任何个人或组织      ,在未征得本站同意时              ,禁止复制             、盗用                    、采集       、发布本站内容到任何网站             、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益                    ,可联系我们进行处理             。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
java设置按钮不可见(java Android get date before 7 days (one week) Stack Overflow)