2024年6月14日发(作者:)

项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需

要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议

这两个中选择一个,暂时不要选择原版Sphinx(对中文的支持不是很好).又因为

服务器所用 MySQL在当时编译时并没有编译Sphinx扩展,而重新编译MySQL并

加入Sphinx暂时又无法实现(项目用到了多台服务器,在不影响现有业务的 情

况下不可能去重新编译MySQL的),所以采用的是程序通过API来外部调用

自带的API有 PHP,Python,Ruby,Java等众多版本,所以基本也够

用了,本人使用的编程语言是PHP所以下文的条用示例采用的是PHP版的API.

一.安装及配置Sphinx及准备测试数据

1.安装前的准备工作

(1)请确认安装了MySQL,Gcc及常用的开发环境包

(2)下载sphinx-for-chinese-1.10.1及中文分词词典xdict_1.1(下面两个

方式,选一个即可)

[1]到sphinx-for-chinese官方下载(强烈推荐使用这个)

cd /usr/local/src

wget -c

/files/sphinx-for-chinese-1.1

wget -c

/files/xdict_

[2]到本站下载(国外vps,性能不怎么好,而且速度慢,不推荐,只做备

用)

cd /usr/local/src

wget -c

/source/soft/sphinx-for-chinese-1.10.1/sphinx-for-chin

wget -c

/source/soft/sphinx-for-chinese-1.10.1/xdict_.g

z

2.安装sphinx-for-chinese-1.10.1

cd /usr/local/src

tar zxvf

cd sphinx-for-chinese-1.10.1-dev-r2287

#MySQL安装在默认位置的使用如下命令

./configure --prefix=/usr/local/sphinx-for-chinese-1.10.1 --with-mysql

如果出现如下图所示错误,表明MySQL不是安装在默认位置,请执行下面的命令

# 如果MySQL不是安装在默认位置(特别是自己编译MySQL的,请注意),请指定

MySQL的相关位置,主要是MySQL的include和lib目录 (Sphinx编译的时候要

用到里面的.h头文件),--with-mysql-includes及--with-mysql-libs就是为了

指定这两 个位置的

./configure --prefix=/usr/local/sphinx-for-chinese-1.10.1

--with-mysql-includes=/usr/local/webserver/mysql/include/mysql

--with-mysql-libs=/usr/local/webserver/mysql/lib/mysql

显示如下图所示内容时,表示可以接着执行下面的make及make install命令

make

make install

#最后执行命令

ls /usr/local/sphinx-for-chinese-1.10.1/

如果显示bin,etc和var三个目录表示安装成功

3.让Sphinx支持中文分词

cd /usr/local/src

tar zxvf xdict_

/usr/local/sphinx-for-chinese-1.10.1/bin/mkdict xdict_

xdict_1.1

如 果提示bin/mkdict: error while loading shared libraries:

.16等错误(以下命令中的.16.0.0的位

置取决于我们mysql编译安装的 位置)