此文章来源于后羿之弓,转载请注明出处

1 先安装libmmseg

tar -zxvf mmseg-0.7.3.tar.gz
cd mmseg-0.7.3
./configure –prefix=/usr/local/mmseg
make
make install

安装完成

2 安装sphinx

tar -zxvf sphinx-0.9.8-rc2.tar.gz
在安装之前先打两个补丁
cd sphinx-0.9.8
patch -p1 < ../sphinx-0.98rc2.zhcn-support.patch
patch -p1 < ../fix-crash-in-excerpts.patch

安装之前最好先关闭数据库 如果要安装sphpinxex引擎必须关闭

./configure --prefix=/usr/local/sphinx -with-mysql=/usr/local/mysql -with-mysql-includes=/usr/local/mysql/include/mysql -with-mysql-libs=/usr/local/mysql/lib/mysql -with-mmseg-includes=/usr/local/mmseg/include/mmseg -with-mmseg-libs=/usr/local/mmseg/lib -with-mmseg

我的mysql 安装在/usr/local/mysql 下 这里 configure 时必须指定用到mysql的路径和库路径 已经mmseg的库
make
make install
复制一份sphinx的配置
cd /usr/local/sphinx/etc
cp sphinx.conf.dist sphinx.conf

启动数据库
3 生成词典
进入到mmseg的源代码目录后
cd data
mmseg -u unigram.txt
在data下边会产生一个文件unigram.txt.uni
这个就是生成的字典 然后把字典改名为uni.lib放在可以读取的目录中即可
cp uni.lib /usr/local/sphinx/

4 配置sphinx

这里最重要的配置就是中文切词的配置 其他配置网上已经很多 参考官方和默认配置文件即可
主要是这样几条
charset_type = zh_cn.utf-8
charset_dictpath = /usr/local/sphinx/
同时将
ngram_len = 1
ngram_chars =
charset_table =
都注释掉
5 索引建立

装好sphinx后在sphinx的目录中有三个目录 分别为bin etc var
bin中 存有sphinx用到的一些执行文件 包括 indexer 索引建立 search 查询工具 searchd 查询服务器 等
索引的建立方法为
indexer –config /usr/local/sphinx/etc/sphinx.conf test test为资源名称 不写为默认所有都建立索引
附:
建立索引期间可能由于不同版本的数据库导致indexer找不到共享库libmysqlclient.so.16
需要把/usr/local/mysql/lib/mysql/libmysqlclient.so.16.0.0 这个文件复制到/usr/lib下 或者作软连接即可
6 查询服务器

searchd –config /usr/local/sphinx/etc/sphinx.conf 为开启

searchd –config /usr/local/sphinx/etc/sphinx.conf –stop 为关闭
7 查询

sphinx的查询 可以大致分为三种

1 数据库引擎中的查询 这里不作介绍 官方文档已经很清楚

2 通过search工具查询
./search –config ../etc/sphinx.conf 你好

3 通过php的接口查询 详见sphinxapi.php

所涉及的源文件及参数配置说明文档与示例下载