千万级Discuz!数据全文检索方案(Sphinx)
[文章作者:叶歆昊 最后修改:2010-07-20 转载请注明原文链接:http://littz.com/discuz-10-million-data-fulltext-search-program-sphinx.html]
作者:叶歆昊 版本:$Id: sphinx_manual.xml 36 2010-01-20 09:54:14Z yexinhao $ http://littz.com
前言:康盛创想的Discuz!从创立之初即以提高产品效率为突破口,随着编译模板,语法生成内核,数据缓存和自动更新机制等独创或独有技术的应用,和坚固的数据结构及最少化数据库查询设计,使得 Discuz! 可以在极为繁忙的服务器环境下快速高效稳定运行。
不过由于Discuz!产品依赖MySQL数据库性能,在全文检索方面如果仅仅依靠MySQL的LIKE %关键词% 语句无法取得理想的成绩。本文阐述经过Discuz!生产环境考验的构建在Sphinx基础上的千万级Discuz!数据全文检索解决方案。
出自俄罗斯的开源全文搜索引擎软件Sphinx在单一索引达到4千万条记录情况下的查询速度仍为0.x秒甚至0.0x秒级别。Sphinx创建索引的速度约五分钟处理百万条记录,对于每分钟的增量索引重建只需要几十秒,每日的增量索引合并到主索引也只需一分钟左右。此构架基础上的Discuz!高负载站点,已成功解决搜索速度慢、经常锁表、无法分布式搜索等问题。
千万级Discuz!数据全文检索方案(Sphinx)适用于繁忙的站点并且论坛访问者有大量的搜索需求,本方案主要解决搜索缓慢问题,相关数据统计大量发帖、回复的站点并不一定有非常多的论坛用户使用搜索功能,本方案并不能适用于解决论坛访问负载问题。
本文环境以CentOS 5为基准。初始化一次全部索引,按系统计划任务crontab方式,每5分钟重建一次增量索引(增量索引不与主索引合并),每天凌晨4点建立一次昨日比较的增量索引(合并到主索引中)。主索引建立在磁盘目录/data/sphdata,增量索引建立在内存/dev/shm/中避免大量的I/O操作,由于帖子编辑限制,全部索引每两个月重建一次。
暂时不公布全文,稍后关注。
2010/01/22 于 11:58:27
我的论坛被关了!郁闷!不知道备案能否通过!
2010/02/02 于 14:06:42
期待全文
2010/05/26 于 23:52:05
这个需要关注一下,希望能早日看到全文
2012/03/16 于 20:39:31
俄罗斯人很牛逼立体