因为觉得这是现在mysql中文全文索引的一个解决办法就把它贴过来了
这只是个缓军之计,更完美的方法,只能等待官方的支持或者自己编译带补丁的MySQL
以下方法并非本人原创,原作者为walkerlee
首先,我们来想想MySQL不支持中文索引的关键原因还是中文是双字节的,如果能把中文转换成单字节的字母或数字,那不就可以使用全文索引了吗
基于这个目的,我们首先需要做的就是分词,如果要实现比较完美的分词的话,还是需要安装相应的插件,但我们很多是虚拟主机,根本没有条件来安装,所以只能采取比较原始的分词方法,二元分词法。
所谓二元分词法,就是将一句话从头到尾,两个字两个字地分开,比如:我们的祖国是花园。就可以划分为:我们,们的,的祖,祖国,国是,是花,花园。虽然有点浪费,但至少面面俱到了。
PHP的相应函数
//Monkey's 二元分词
function sp_str($str) {
//所有汉字后添加ASCII的0字符,此法是为了排除特殊中文拆分错误的问题
$str=preg_replace("/[/x80-/xff]{2}/","//0".chr(0x00),$str);
//拆分的分割符
$search = array(",", "/", "//", ".", ";", ":", "/"", "!", "~", "&