6.1. SphinxSE概览
SphinxSE是一个可以编译进 MySQL 5.x版本的MySQL存储引擎,它利用了该版本MySQL的插件式体系结构。SphinxSE不能用于 MySQL 4.x系列,它需要MySQL 5.0.22或更高版本;或 MySQL 5.1.12或更高版本。
尽管被称作“存储引擎”,SphinxSE自身其实并不存储任何数据。它其实是一个允许 MySQL服务器与searchd交互并获取搜索结果的嵌入式客户端。所有的索引和搜索都发生在 MySQL之外。
显然,SphinxSE的适用于:
?使将 MySQL FTS应用程序移植到Sphinx
?使没有 Sphinx API的那些语言也可以使用Sphinx
?当需要在MySQL端对 Sphinx结果集做额外处理(例如对原始文档表做JOIN,MySQL端的额外过滤等等)时提供优化
6.2.安装SphinxSE
您需要搞到一份 MySQL的源码,并重新编译MySQL。MySQL源码(mysql-5.x.yy.tar.gz)可在dev.mysql.com网站获得。
针对某些版本的MySQL,Sphinx 网站提供了包含支持SphinxSE的打过补丁 tarball压缩包。将这些文件解压出来替换原始文件,就可以配置(configure)、构建(build)以生成带有内建 Shpinx支持的MySQL了。
如果网站上没有对应版本的tarball,或者由于某种原因无法工作,那您可能需要手工准备这些文件。您需要一份安装好的GUN Autotools框架(autoconf,automake和libtool)来完成这项任务。
6.2.1. 在MySQL 5.0.x上编译SphinxSE
如果使用我们事先做好的打过补丁的tarball,那请跳过步骤 1-3
1. 将 sphinx5.0.yy.diff补丁文件复制到MySQL源码目录并运行
patch -p1 < sphinx.5.0.yy.diff
如果没有与您的MySQL版本完全匹配的.diff文件,请尝试一个最接近版本的.diff文件。确保补丁顺利应用,没有 rejects。
2. MySQL源码目录中运行
sh BUILD/autorun.sh
3. MySQL源码目录中建立sql/sphinx目录,并把 Sphinx源码目录中mysqlse目录下的全部文件拷贝到这个目录。
cp
-R /root/builds/sphinx-0.9.7/mysqlse /root/builds/mysql-5.0.24/sql/sphinx
4. 配置(configure)MySQL,启用Sphinx引擎
./configure --with-sphinx-storage-engine
5. 构建(build)并安装MySQL
make
make install
6.2.2.在MySQL 5.1.x上编译SphinxSE
如果使用我们事先做好的打过补丁的tarball,那请跳过步骤 1-3
1. MySQL源码目录中建立storage/sphinx目录,并将 Sphinx源码目录中的mysqlse目录下的全部文件拷贝到这个目录。
cp
-R /root/builds/sphinx-0.9.7/mysqlse /root/builds/mysql-5.1.14/storage/sph inx
2. MySQL源码目录运行
sh BUILD/autorun.sh
3. 配置(configure)MySQL,启用Sphinx引擎
./configure --with-plugins=sphinx
4. 构建(build)并安装MySQL
make
make install