转载请注明出处:http://blog.csdn.net/sunlylorn/article/details/7004668
作者:sunlylorn
博客地址:blog.csdn.net/sunlylorn
1、背景
需要使用coreseek+mysql+php搭建一个中文检索引擎,mysql默认编码为latin1,不能更改mysql的编码。
且:中文是通过gbk编码存入数据库的!(关键)
2、解决办法
coreseek安装过程不再描述,详见http://www.coreseek.cn/product_install/install_on_bsd_linux
下面主要讲一下如何使coreseek支持latin1编码。我们来看一下最关键的配置文件:
其中最关键的两行就是:
1)不要执行set names utf8
2)设置charset_type为zh_cn.gbk
我们来测试一下该配置文件是否好使,运行:
/usr/local/coreseek/bin/indexer users_main --buildstops 1.txt 1000000
查看1.txt里的内容:
已经有了分词结果!
我们再来测试一下搜索是否成功,准备如下脚本:
<?php
require ( "sphinxapi.php" );
$cl = new SphinxClient ();
$cl->SetServer ( '127.0.0.1', 9312);
$cl->SetConnectTimeout ( 3 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode ( SPH_MATCH_ANY);
$res = $cl->Query ('油耗', "*" );
print_r($res);
?>
先建好索引:
/usr/local/coreseek/bin/indexer --all
再启动搜索服务:
/usr/local/coreseek/bin/searchd
运行测试脚本:
/usr/local/php/bin/php ./test_coreseek.php
输出:
搞定!