Sphinx是一款基于SQL的高性能全文检索引擎,Sphinx的性能在众多全文检索引擎中也是数一数二的,利用Sphinx,我们可以完成比数据库本身更专业的搜索功能,而且可以有很多针对性的性能优化。
Sphinx在MySQL上安装有两种方式:
下面是第一种安装方式:
- #下载最新稳定版
- wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
- tar xzvf sphinx-0.9.9.tar.gz
- cd sphinx-0.9.9
- ./configure --prefix=/usr/local/sphinx/ --with-mysql --enable-id64
- make
- make install
注:coreseek的安装教程来自这里,下面是详细过程:
因为coreseek需要autoconf 2.64以上版本,因此需要升级autoconf,不然会报错。从https://ftp.gnu.org/gnu/autoconf/autoconf-2.64.tar.gz下载autoconf-2.64.tar.bz2,安装方法如下:
- tar -jxvf autoconf-2.64.tar.bz2
- cd autoconf-2.64
- ./configure
- make
- make install
新版本的coreseek将词典和sphinx源程序放在了一个包中,因此只需要下载coreseek包就可以了。
- wget http://www.wapm.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
- tar xzvf coreseek-3.2.14.tar.gz
- cd mmseg-3.2.14
- ./bootstrap #输出的warning信息可以忽略,如果出现error则需要解决
- ./configure --prefix=/usr/local/mmseg3
- make && make install
- cd ..
- cd csft-3.2.14
- sh buildconf.sh #输出的warning信息可以忽略,如果出现error则需要解决
- ./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql
- make && make install
- cd ..
备注:需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文,我的系统字符集为en_US.UTF-8也是可以的。
- cd testpack
- cat var/test/test.xml #此时应该正确显示中文
- /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml
- /usr/local/coreseek/bin/indexer -c etc/csft.conf --all
- /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索
- 此时正确的应该返回
- words:
- 1. '网络': 1 documents, 1 hits
- 2. '搜索': 2 documents, 5 hits
新版本的已经自动生成。
Sphinx作为一款高性能的SQL全文检索引擎,值得开发者继续关注,尤其是它多语言的API支持,使开发者可以更方便地应用。