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编译安装的 位置)
发布评论