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

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

ID:14382727

大小:211.08 KB

页数:20页

时间:2018-07-28

sphinx社区全文搜索平台配置手册_第1页
sphinx社区全文搜索平台配置手册_第2页
sphinx社区全文搜索平台配置手册_第3页
sphinx社区全文搜索平台配置手册_第4页
sphinx社区全文搜索平台配置手册_第5页
资源描述:

《sphinx社区全文搜索平台配置手册》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

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

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

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

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

6、phinx和MySQL结合部署时,Sphinx的数据来源为MySQL。服务器安装Sphinx,由sphinx.conf配置文件指定Sphinx的数据源,如何读取MySQL的数据内容,设置Sphinx对MySQL数据库的哪个表哪些字段建立索引,索引的返回数据必须是数值型。 例如一个配置段设置Sphinx对cdb_threads表的subject和author字段建立索引,搜索结果可以返回tid和uid。另一个配置段设置Sphinx对cdb_posts表的subject和message字段索引,搜索结果返回tid和pid。Sphi

7、nx建立的索引只是查询MySQL数据库获取数据内容,将索引存放在Sphinx的数据文件和内存中,一般不对MySQL数据库进行修改操作。 因为Sphinx独立运行,使用SELECT*FROMcdb_threadsWHEREsubjectLIKE'%关键词%'LIMIT0,10;类似的SQL语句将无法利用Sphinx搜索,即使服务器端已经部署Sphinx也不会对该查询语句有任何优化作用。 正确使用Sphinx搜索数据的操作方式主要有三种:1、命令行的search工具:/usr/local/webserver/sphinx/bin/

8、search–ithreadstest2、php的api接口查询:原理是直接用fsockopen连接端口,传递数据取得返回结果。Sphinx官方已经提供php的api接口,可以includeapi查询(本方案以该查询方法为主),也可以将其源代码编译成php扩展而无需inclu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。