sphinx社区全文搜索平台配置手册

上传人:xzh****18 文档编号:34610742 上传时间:2018-02-26 格式:DOCX 页数:20 大小:211.08KB
返回 下载 相关 举报
sphinx社区全文搜索平台配置手册_第1页
第1页 / 共20页
sphinx社区全文搜索平台配置手册_第2页
第2页 / 共20页
sphinx社区全文搜索平台配置手册_第3页
第3页 / 共20页
sphinx社区全文搜索平台配置手册_第4页
第4页 / 共20页
sphinx社区全文搜索平台配置手册_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《sphinx社区全文搜索平台配置手册》由会员分享,可在线阅读,更多相关《sphinx社区全文搜索平台配置手册(20页珍藏版)》请在金锄头文库上搜索。

1、 1 / 20千万级 Discuz!数据全文检索方案(Sphinx )前言:康盛创想的 Discuz!从创立之初即以提高产品效率为突破口,随着编译模板,语法生成内核,数据缓存和自动更新机制等独创或独有技术的应用,和坚固的数据结构及最少化数据库查询设计,使得 Discuz! 可以在极为繁忙的服务器环境下快速高效稳定运行。由于 Discuz!产品依赖 MySQL 数据库性能,在全文检索方面如果仅仅依靠 MySQL 的 LIKE %关键词% 语句无法取得理想的成绩。本文阐述经过 Discuz!生产环境考验的构建在 Sphinx 基础上的千万级 Discuz!数据全文检索解决方案。出自俄罗斯的开源全文

2、搜索引擎软件 Sphinx 在单一索引达到 4 千万条记录情况下的查询速度仍为 0.x 秒甚至 0.0x 秒级别。Sphinx 创建索引的速度约五分钟处理百万条记录,对于每分钟的增量索引重建只需要几十秒,每日的增量索引合并到主索引也只需一分钟左右。此构架基础上的 Discuz!高负载站点,已成功解决搜索速度慢、经常锁表、无法分布式搜索等问题。千万级 Discuz!数据全文检索方案(Sphinx)适用于繁忙的站点并且论坛访问者有大量的搜索需求,本方案主要解决搜索缓慢问题。本文环境以 CentOS 5 为基准。初始化一次全部索引,按系统计划任务 crontab 定时方式,每5 分钟重建一次增量索引

3、(增量索引不与主索引合并) ,每日凌晨 3:30 建立一次昨日比较的增量索引(合并到主索引中) 。主索引建立在磁盘目录/data/sphdata,增量索引建立在内存/dev/shm/ 中避免大量的 I/O 操作,由于帖子编辑限制,全部索引每两个月重建一次。目 录千万级 Discuz!数据全文检索方案(Sphinx) .1Sphinx 快速介绍 .2一、 Sphinx 全文检索方案构架图 .3二、 Sphinx 中文分词 .4三、 Sphinx 安装步骤 .41. 安装、升级所需的程序库 .42. 创建安装文件夹并下载源代码 .43. 安装 MMseg 中文分词 .44. 安装 CSFT(Sph

4、inx 的 CoreSeek 修改版) .55. 编译 Sphinx 过程可能出现的错误 .5a) 无法找到 mysql 路径 .5b) 无法找到 libiconv.5c) 无法找到 libmysqlclient.so.15 .5d) php 5.2.11 版本的 api BUG.5e) 生成索引时容易发生磁盘空间不足写入失败的错误 .56. 安装为 php 扩展(可选) .67. 安装 SphinxSE 存储引擎(可选) .6四、 Sphinx 配置 .61. mmseg 中文分词词库 .6a) 词典格式 .6b) 词库生成方法 .7 2 / 202. 创建 sphinx 数据目录结构 .7

5、3. 创建 sphinx.conf 配置文件 .74. mmseg.ini 分词配置文件 .145. 建立 Sphinx 增量索引数据表 .146. 书写常用的 sphinx 控制命令到 sh 文件 .147. 创建相应的文件结构,初始化 Sphinx 的全部索引 .178. 启动 sphinx.179. 设置计划任务项 .1710. 设置开机启动项 .17五、 通过命令行测试搜索 .17六、 通过 php api 调用 Sphinx 搜索 .18七、 通过 MySQL 的 SphinxSE 存储引擎调用 Sphinx 搜索(可选) .19八、 Sphinx 数据占用量统计 .19Sphinx

6、 快速介绍Sphinx 是独立的搜索服务端,不依赖 MySQL,当 Sphinx 和 MySQL 结合部署时,Sphinx 的数据来源为 MySQL。服务器安装 Sphinx,由 sphinx.conf 配置文件指定 Sphinx 的数据源,如何读取MySQL 的数据内容,设置 Sphinx 对 MySQL 数据库的哪个表哪些字段建立索引,索引的 返回数据必须是数值型。 例如一个配置段设置 Sphinx 对 cdb_threads 表的 subject 和 author 字段建立索引,搜索结果可以返回 tid 和 uid。另一个配置段设置 Sphinx 对 cdb_posts 表的 subject 和 message 字段索引,搜索结果返回 tid 和 pid。Sphinx 建立的索引只是查询 MySQL 数据库获取数据内容,将索引存放在 Sphinx 的数据文件和内存中,一般不对 MySQL 数据库进行修改操作。 因为 Sphinx 独立运行,使用 SELECT * FROM cdb_threads WHERE

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 理论文章

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号