- 3
- 0
- 约2.72万字
- 约 19页
- 2016-10-06 发布于贵州
- 举报
Sphinx搜引擎架构与使用文档(和MySQL结合)V1.1
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)