转载请注明出处: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
已经有了分词结果!
我们再来测试一下搜索是否成功,准备如下脚本:
<?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
搞定!