Blaze 2018-12-15
Sphinx是一个基于SQL的全文检索引擎;普遍使用于很多网站;但由于中英文的差异,其本身,对中文的支持并不好。主要是中英文分词方法不一样:英文只需按照空格对其分词即可,中文来说,却是件困难的事情。
在合适的场景,选择合适的方案,得出最优的解。
三种目前最常用的方案Coreseek、Sphinx-for-chinaese、Sphinx+Scws,并对其简单对比:一、Coreseek ;为国人基于Sphinx开发的方案,目前最稳定版,是基于经典的Sphinx0.9.9版
优点:有成熟的文档、以及社区;其分词mmseg为目前国内最为好用分词,索引和搜索分词都可以用到;缺点:深度开发、版本更新较慢;索引较慢策略:一个词库管理后台,维护词库;定期生成字典;此套件会自动分词索引;适用场景:普通青年、搭建差不多的搜索,适用于普遍网站
二、Sphinx-for-chinaese ;为国人2基于经典的Sphinx0.9.9版开发的扩展版优点:部署简单,易操作,内嵌分词和词库,索引和搜索分词都可以用到;缺点:版本更新较慢;分词较弱;索引相对较慢策略:同一适用场景:普通青年、快速搭建搜索的小站
三、
Sphinx+Scws
为两套独立系统,单独部署,所谓高内聚低耦合,强烈推荐优点:两套系统,相对独立,各自单独Server;分词可以做其他用途;版本更新较快;缺点:部署稍复杂,使用稍复杂;索引分词只能用一元分词,数据量较大策略:词库管理外;使用时,先调用分词服务,后调用搜索适用场景:文艺青年、搭建像样点的搜索;好吧文艺青年
一.安装Sphinx:
cd ;/usr/local/src
wget ;http://sphinxsearch.com/files/sphinx-2.1.2-release.tar.gz
tar ;-xzvf ;sphinx-2.1.2-release.tar.gz
cd ;sphinx-2.1.2-release
./configure ;--prefix=/usr/local/sphinx ;--with-mysql ;--with-static-mysql ;
make ;
make ;install
# ;添加到环境变量
echo ;export ;PATH=$PATH:/usr/local/sphinx/bin/ ;>> ;/etc/profile
source ;/etc/profile
安装libsphinxclient:
cd ;api/libsphinxclient
./configure ;--prefix=/usr/local/sphinx/libsphinxclient
make ;&& ;make ;install
安装Sphinx的PHP扩展:
cd ;/usr/local/src
wget ;-c ;http://pecl.php.net/get/sphinx-1.3.0.tgz
tar ;zxvf ;sphinx-1.3.0.tgz
cd ;sphinx-1.3.0
phpize
./configure ;--with-sphinx=/usr/local/sphinx/libsphinxclient ;--with-php-config=/usr/local/php/bin/php-config
make ;&& ;make ;install
echo ;"[Sphinx]" ;>> ;/usr/local/php/etc/php.ini
echo ;"extension ;= ;sphinx.so" ;>> ;/usr/local/php/etc/php.ini
注意:我个人php安装到路径是/usr/local/php,需根据自己情况进行修改配置:
cd ;/usr/local/sphinx/etc
cp ;sphinx.conf.dist ;sphinx.conf
vi ;sphinx.conf
配置文件详解见:测试:
mysql ;-u ;test ;< ;/usr/local/sphinx/etc/example.sql
scws:
cd ;/usr/local/src
wget ;http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2
tar ;xvjf ;scws-1.2.2.tar.bz2
cd ;scws-1.2.2
./configure ;--prefix=/usr/local/scws
make ;&& ;make ;install
scws的PHP扩展安装:
cd ;./phpext
phpize ;
./configure ;--with-php-config=/usr/local/php/bin/php-config
make ;&& ;make ;install
echo ;"[scws]" ;>> ;/usr/local/php/etc/php.ini ;
echo ;"extension ;= ;scws.so" ;>> ;/usr/local/php/etc/php.ini
echo ;"scws.default.charset ;= ;utf-8" ;>> ;/usr/local/php/etc/php.ini
echo ;"scws.default.fpath ;= ;/usr/local/scws/etc/" ;>> ;/usr/local/php/etc/php.ini
词库安装:
cd ;/usr/local/src
wget ;http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2
tar ;jxvf ;scws-dict-chs-utf8.tar.bz2 ;-C ;/usr/local/scws/etc/
chown ;www:www ;/usr/local/scws/etc/dict.utf8.xdb