文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>论坛搜索引擎的设计实践

论坛搜索引擎的设计实践

时间:2007-03-06  来源:qingmedia


                                                                    我自己写的php树形论坛原先采用了模糊查询,也就是使用mysql的WHERE `subject` LIKE %$keyword% OR `content` LIKE %$keyword%这样的方式查询的,支持多个关键词。这种方式查询彻底、精确,但速度慢,对服务器的资源占用应该是比较高的。
    最近抽时间设计尝试了一个新的搜索模式,主要原理是这样的:
    1.自动学习记忆新词汇
    当用户输入查询词汇关键词后,首先这些词汇存入一个词典表,词汇关键词是唯一不重复的。如下表(此表id字段是不重要的)

    2.普通查询
    普通查询就是开头所述的用mysql的LIKE语句实现的,同时,将结果集的帖子id与关键词的1对1地存入索引表,将来的快速查询就是先查这个索引表。用户使用普通查询越多,索引表越丰富。
    3.快速查询
    索引表字段很简单,就是关键词与帖子id的对应,一个关键词可能有一大批帖子id。假如用户关键词有2个,快速查询的原理就是分别查出这2个关键词所对应的帖子id,并存入数组,将这所获得的数组交集的结果就是符合用户2个关键词的结果集id了。最后,按这些结果集的id查询帖子表,就快速地把查询结果输出了。下表就是索引表,id也是不重要的,重要的是keyword、thread_id(帖子id),这个表中反映了关键词“1394”在210436、189177、145611、109150、39227这些帖子中都存在。

    4.索引表的自动丰富
    用户发贴后,将用户的发表内容经过词典表的所有词汇的检查,将内容中包含的词汇以及本贴的id存入索引表,就实现了新贴的自动检索。
    现在这个系统初步可以使用,可到我的论坛体验。
    地址:
http://www.dvhome.cn/bbs
               
               
               
               
               
               
               
               
               
               
               
               
               

相关阅读 更多 +
排行榜 更多 +
开心动动脑安卓版 v1.0 手机版

开心动动脑安卓版 v1.0 手机版

休闲益智 下载
不良人破局手游下载

不良人破局手游下载

角色扮演 下载
云海之下手游下载

云海之下手游下载

角色扮演 下载