- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Sphinx搜索引擎架构与使用(和MySQL结合)V121
Sphinx搜索引擎架构与使用文档(和MySQL结合)V1.1
作者:张宴 () 时间:2008-11-18
本文档修订历史:
版本号 修订人 修订说明 1.0.0张宴 新建 1.0.1张宴 增加搜索索引配置 1.0.2张宴 增加在指定字段中搜索的SQL实例 1.1.0张宴 修正小错误
●说明:水绿色背景表示Linux Shell命令、橄榄色背景表示MySQL的SQL语句、淡蓝色背景表示配置文件内容、黑底白字表示屏幕显示内容。
目 录
一、XX网搜索引擎架构设计: 3
1、搜索引擎架构图(基于PHP+MySQL+Sphinx): 3
2、搜索引擎架构设计思路: 3
⑴、调用方式最简化: 3
⑵、创建索引、查询速度快: 3
⑶、按服务类型进行分离: 4
⑷、“主索引+增量索引”更新方式: 4
⑸、“Ext3文件系统+tmpfs内存文件系统”相结合: 4
⑹、中文分词词库: 5
二、MySQL+Sphinx+SphinxSE安装步骤: 5
1、安装python支持 5
2、编译安装LibMMSeg 5
3、编译安装MySQL 5.1.26-rc、Sphinx、SphinxSE存储引擎 5
4、创建Sphinx索引文件和MySQL数据文件存放目录 6
5、创建MySQL配置文件(以线上配置文件为准) 6
⑴、创建配置文件/mysql/3306/f(以db11的3306端口为例) 6
⑵、创建配置文件/mysql/3406/f(以db11的3406端口为例) 8
6、制作一份MySQL Slave供搜索引擎使用 10
7、创建快捷启动、停止、重启、杀死MySQL进程的脚本(以db11的3306端口为例) 10
三、Sphinx配置: 11
1、生成Sphinx中文分词词库 11
⑴、词典的构造 12
⑵、词典文件格式 12
⑶、XX网搜索引擎的中文分词词库 12
2、创建Sphinx主索引文件、增量索引文件存放目录 12
3、创建Sphinx配置文件 13
4、初始化sphinx.conf中配置的全部索引 13
5、创建两个shell脚本,一个用来创建主索引、一个用来创建增量索引。 13
⑴、主索引更新脚本 13
①、创建脚本build_main_index.sh: 13
②、赋予主索引更新脚本可执行权限: 13
③、每天凌晨定时重建主索引: 13
⑵、增量索引更新脚本 13
①、创建脚本build_delta_index.sh: 13
②、赋予增量索引更新脚本可执行权限: 14
③、每3分钟自动重建一次搜索引擎的增量索引: 14
6、启动Sphinx守护进程(searchd) 14
7、配置服务器开机启动时需要自动执行的命令(以db11为例) 14
8、创建Sphinx存储引擎表: 14
⑴、设置/etc/hosts 14
⑵、登录运行在3306端口的MySQL服务器(提供“搜索查询服务”): 14
⑶、创建数据库“Sphinx”和相对应的Sphinx表(SQL语句): 15
示例SQL: 15
四、如何通过SQL语句调用搜索引擎: 15
1、搜索应用实例 15
⑴、XX网北京出租房搜索 15
⑵、XX网北京小区搜索 15
⑶、在指定字段中搜索(例如在字段“title”中搜索关键字“中关村”) 16
2、SphinxSE存储引擎及SQL语法详细说明 16
一、XX网搜索引擎架构设计:
1、搜索引擎架构图(基于PHP+MySQL+Sphinx):
注:目前有两台搜索数据库,db9(09)(MySQL 3306端口用于搜索查询、3406端口用于建索引)和db11(11)(MySQL 3306、3307端口用于搜索查询,3406端口用于建索引),dbsearch为NetScaler虚拟IP 63(做db9的3306,db11的3306、3307负载均衡)的hosts。
2、搜索引擎架构设计思路:
⑴、调用方式最简化:
尽量方便前端Web工程师,只需要一条简单的SQL语句“SELECT ... FROM ... JOIN ... ON (...=...) WHERE query=...;”即可实现高效搜索。
⑵、创建索引、查询速度快:
①、Sphinx Search 是由俄罗斯人Andrew Aksyonoff 开发的高性能全文搜索软件包,在GPL与商业协议双许可协议下发行。
Sphinx的特征:
·Sphinx支持高速建立索引(可达10 MB/秒,而Lucene建立索引的速度是1.8MB/秒)
·高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果)
·高扩展性(在单一CPU上,实测最高可对100GB的文本建立
文档评论(0)