搜索引擎之ajax下拉框的初步构想

构想

今天我想给我的网站实现类似于百度这样ajax关键词模糊查找。


我的网站搜索框已经做好,大致是这样的



在百度的基础上,加了一个select框。我想实现的效里是,选择文章,和模板时,后台会对它有区分。也就是说,文章的关键词是文章的,模板的是模板的,不能产生混乱。


由于本人很穷,主机内存目前只有512M,用来实现这个,我想是疯了。所以我不得不用去优化程序,加入一些其它的技术去缓解服务器压力。


我初步构想是用,sphinx建立全文索引,用memcache去缓存数据,然后用ajax去读取数据,最后实现想要的效果。


先说表的设计,先规划一个简单的表

CREATE TABLE `xxx_search_article` (
  `id` int(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL,
  `check` int(20) unsigned NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`),
  KEY `u` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

本来我想把模板,和文章放在一张表中去的,但是又想给关键词加唯一索引,又不想混在一起,于是最终还是选择两张表..

id为主键,name为关键词,指定唯一索引。check为查询次数,很简单的一个表,后面的功能将围绕此表展开。


首先关键词的产生问题,初步构想由两个方法同时产生,第一,发表文章的时候,对标题做分词处理,并且入库。查询的时候,一旦查到结果,入库。(没有则入库,有则更新 check+1)。

然后在sphinx配置文件中,做出模板源,和文章源,彼此加以区分。具体配置方法,可查看sphinx配置一文。

开启sphinx守护,每10分种自动索引一次,每天整表索引一次。

在程序中,通过md5($sql),memcache缓存数据库查询值,有效期暂定24h。查询结果,生成文件缓存,同样暂定24h。


ajax显示结果初步定为最大5条记录,通过check,desc。


初步构想就这样,现在开始实施,期间遇到问题,会在写一文。

2014-09-29 10:44:14

穆子龙
穆子龙

这是介绍的地方

穆子龙的标签

本文相关标签

推荐应用

友情链接


皖ICP备14007051号-2 关于穆子龙