1、解决依赖

yum -y install gcc gcc-c++

2、源码编译

tar xzvf sphinx-2.2.10-release.tar.gz
cd sphinx-2.2.10-release
./configure --prefix=/usr/local/sphinx
make && make install

3、配置

cd /usr/local/sphinx/etc
cp sphinx.conf.dist sphinx.conf
vim sphinx.conf

4、导入数据索引

1. 导入测试数据表到数据库
mysql -u test < /usr/local/sphinx/etc/example.sql

1. 从数据库导入数据作为索引
cd /usr/local/sphinx/etc
/usr/local/sphinx/bin/indexer --all

5、启动检索服务进程

/usr/local/sphinx/bin/searchd

6、命令行检索示例

1. 登录 sphinx 命令行客户端
mysql -h0 -P9306

2. 执行检索
SELECT * FROM test1 WHERE MATCH('my document');

7、编译对应 PHP 扩展

1. 编译 sphinx 客户端类库
用于解决编译 sphinx 扩展时 Cannot find libsphinxclient headers 的报错

cd sphinx-2.2.10-release/api/libsphinxclient
./configure --prefix=/usr/local/sphinx
make && make install
2. 下载扩展源码包:http://pecl.php.net/package/sphinx
wget http://pecl.php.net/get/sphinx-1.3.3.tgz ##适用于 php5
tar zxvf sphinx-1.3.3.tgz

### 只适用于 5.2 - 6.0 版本 ###
3. 编译扩展
cd sphinx-1.3.3
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config \
--with-sphinx=/usr/local/sphinx
make && make install
4. 修改 php.ini
vim /usr/local/php/etc/php.ini
加入如下行:

extension = sphinx.so

重启 php-fpm 服务,查看 phpinfo 信息是否已安装成功
4. 备注
目前还没有适用于 PHP 7 的扩展,要使用 sphinx 需要跳回到 PHP 5.6 中

8、PHP 中 Sphinx 使用实例

1. sphinx 源码包中的 api 子目录下有各种 语言的 API,可以参考使用;另外
可以查阅 PHP 官方文档相关模块
2. 实例代码
包含 api 目录下的 sphinxapi.php 脚本文件
require ( "sphinxapi.php" );
$cl = new SphinxClient ();

$cl->SetMatchMode ( SPH_MATCH_EXTENDED );
$cl->SetSortMode ( SPH_SORT_RELEVANCE );
$cl->AddQuery ( "the", "lj" );
$cl->SetSortMode ( SPH_SORT_EXTENDED, "published desc" );
$cl->AddQuery ( "the", "lj" );
$cl->SetSortMode ( SPH_SORT_EXTENDED, "published asc" );
$cl->AddQuery ( "the", "lj" );
$res = $cl->RunQueries();