coreseek中文分词与搜索的安装

由于sphinx测试的时候没能找到中文,所以怀疑是sphinx不支持中文分词的原因,所以决定安装coreseek,安装过程如下:

# wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz
# tar zxvf coreseek-3.2.14.tar.gz
# cd coreseek-3.2.14

先安装中文分词软件 mmseg
# cd mmseg-3.2.14
# ACLOCAL_FLAGS="-I /usr/share/aclocal" ./bootstrap #用于gcc编译的设置
# ./configure --prefix=/usr/local/mmseg3
# make && make install
## 安装完成后,mmseg使用的词典和配置文件将自动安装到/usr/local/mmseg3/etc中

开始安装 coreseek
# cd csft-3.2.14
# sh buildconf.sh ##生成当前系统对应的编辑配置文件
# apt-get install mysql-client libmysqlclient15-dev libxml12-dev libexpat1-dev ##coreseek支持mysql所需要的软件
# ./configure --prefix=/usr/local/coreseek --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql
# make && make install

至此,安装完成。现在可以将testpack中etc下的配置文件拷贝到/usr/local/coreseek/etc下进行数据源配置,其中文分词的核心配置如下
 #stopwords   = /path/to/stowords.txt的位置
 charset_dictpath  = /usr/local/mmseg3/etc/ #中文分词字典及配置文件
 charset_type   = zh_cn.utf-8
 #charset_table    = .......#需将原有的该配置注释掉
 ngram_len         = 0 ##表示取消原有的一元字符切分模式,不对中文分词产生干扰

该配置文件与sphinx中的配置文件大致相同,只是修改了上面的核心配置
现开始建立索引并进行搜索测试
# bin/indexer -c etc/csft_claver.conf --all
# bin/search -c etc/csft_claver.conf 银行
结果同原版sphinx一样,非常之郁闷啊

然后测试coreseek testpack下的测试用例,可以得到正确的结果,由此断定coreseek安装没有问题,甚至可能原来的sphinx的安装也没有问题,问题可能出在mysql的数据上。

在命令行模式下重新导入数据库,可问题依旧。
试着在mysql中手动插入了两条记录,搜索新插入记录中的中文,感谢上苍,这回终于搜出新插入的记录了。

由此确定,应该是导入的数据有问题。可是为什么select出来的都是正常的呢。
安装phpmyadmin进数据库看看
$ sudo apt-get install phpmyadmin
从phpmyadmin访问数据库,数据库里的数据居然都是乱码,悲催的。
可是我导出的数据源就是utf8的呀,导入之后怎么成了乱码了呢。
删除数据库,通过phpmyadmin导入,选择utf8编码,成了,数据库显示中文,而且coreseek也能搜索出中文了。

可是为什么通过命令行导入的时候就是乱码呢?原来导入的时候也需要设置字符集的
mysql>create database hf_sns default character set utf8;
mysql>use hf_sns;
mysql>set names utf8;
mysql>source /home/luke/bak/hf_sns.sql

重新导入后,再次测试,这回可以了
哎,困扰了我三天的问题,居然只是set names utf8这一句话。
悲催的

 

参考网址

coreseek的安装:http://www.coreseek.cn/products/products-install/install_on_bsd_linux/ 

mysql数据源配置说明:http://www.coreseek.cn/products-install/mysql/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值