coreseek安装与mysql latin1编码问题解决

转载请注明出处: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编码。我们来看一下最关键的配置文件

coreseek安装与mysql latin1编码问题解决_第1张图片

其中最关键的两行就是:

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

输出:

coreseek安装与mysql latin1编码问题解决_第2张图片

coreseek安装与mysql latin1编码问题解决_第3张图片


搞定!

你可能感兴趣的:(mysql,数据库,linux,测试,脚本,引擎)