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

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

时间2025-05-02 00:45:44分类IT科技浏览3304
导读:用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
vue脚手架结构(Vue的架构以及基于脚手架环境开发vue项目) 火车头采集百度搜索(WordPress火车头采集:高效便捷的内容采集插件)