基于Sphinx的中文全文检索引擎Coreseek的安装

按照Sphinx来进行全文检索,默认只支持按字拆分,如果要实现比较好的中文分词,可以使用基于libmmseg的引擎Coreseek。

yum install g++

yum install gcc

yum install make

yum install mysql mysql-devel php-mysql qt4-mysql

wget  http://www.coreseek.cn/uploads/sources/mmseg3_0b3.tar.gz

wget  http://www.coreseek.cn/uploads/sources/csft3_0b4.tar.gz

tar -xzvf mmseg3_0b3.tar.gz

tar -xzvf csft3_0b4.tar.gz

cd mmseg.3.0b3/

./configure --prefix=/var/mmseg

make

make install

cd ..

cd csft3_0b4

./configure --prefix=/var/coreseek --with-mysql --with-mmseg-includes=/var/mmseg/include/mmseg --with-mmseg-libs=/var/mmseg/lib/

make

make install

cd /var/coreseek/

mkdir dict

cd /home/hfahe/mmseg.3.0b3/data

/var/mmseg/bin/mmseg -u unigram.txt

cp unigram.txt.uni /var/coreseek/dict/uni.lib

cd /var/coreseek/dict/

vi mmseg.ini

输入

cd /var/coreseek/etc/

cp sphinx.conf.dist sphinx.conf

mysql -h 192.168.1.xxx -u root -pxxx test < example.sql

vi sphinx.conf

修改配置里的数据库ip、用户名、密码、数据库

/var/coreseek/bin/indexer  --config  /var/coreseek/etc/sphinx.conf

这时可能会出现关于libmysqlclient的错误,解决办法如下:

locate libmysqlclient.so

ln -s /usr/local/lib/mysql/libmysqlclient.so.16 /lib/libmysqlclient.so.16

/var/coreseek/bin/indexer  --config  /var/coreseek/etc/sphinx.conf --all

/var/coreseek/bin/search  --config  /var/coreseek/etc/sphinx.conf doc

要支持中文,需要将配置里的charset_type值修改为zh_cn.utf-8,并添加charset_dictpath = /var/coreseek/dict。

还需要将sql_query_pre = SET NAMES utf8这一行配置打开。

/var/coreseek/bin/indexer  --config  /var/coreseek/etc/sphinx.conf --all

/var/coreseek/bin/search  --config  /var/coreseek/etc/sphinx.conf 中文

试试是否已经可以正常检索中文了。

coreseek默认的配置文件是etc下的csft.conf,使用此文件时可以不需要加入config的配置。

此时应该已经可以显示正确结果了。

原文地址:https://www.cnblogs.com/javawebsoa/p/2458355.html