前面我们已经知道了mysql全文检索的原理以及分词技巧,同时也知道mysql全文检索只支持英文,那么中文该如何来检索呢?
其基本思路是把中文转换为英文,这里要用到两个表,一个是原始内容表,一个是原始内容转换为英文后的表(也叫索引表),它的搜索过程是这样的:先对 用户输入的信息进行分词,然后把这些词转换为英文,这样就可以利用mysql的全文检索对检索表进行匹配,得出id再从原始内容表查询。
下面来说下两种mysql中文检索的方案:
分别建一个内容表、一个内容索引表
CREATE TABLE IF NOT EXISTS `news` (
`id` int(8) NOT NULL auto_increment,
`content` varchar(100) default NULL,
PRIMARY KEY (`id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
/* http://www.manongjc.com/article/1444.html */
CREATE TABLE IF NOT EXISTS `news_index` (
`id` int(8) NOT NULL auto_increment,
`nid` int(8) NOT NULL,
`key` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
1、将中文转换为 64编码
$data = \'我要坚持学php\';
$data = 64_encode($data); //返回的结果就是编码后的字符串,这里省略了分词这个步骤
但是这种方式有个缺点,当用户搜索拼音的时候检索不出结果;
2、将中文转换为拼音
网上有很多将中文转换为拼音的源码,具体如何实现大家可以网上搜索《php中文转换成拼音代码》
继续阅读与本文标签相同的文章
上一篇 :
过去20年的十大IT趋势
-
华为高管彭博:正与美国公司就授权5G平台展开初期谈判
2026-05-14栏目: 教程
-
微信曝光新功能,超好用,再也不用担心被刷屏
2026-05-14栏目: 教程
-
Verizon为美国多座大型体育场馆提供了5G网络覆盖
2026-05-14栏目: 教程
-
别人加薪你加班,偷偷告诉你 6 个Word小技巧,比加薪都管用!
2026-05-14栏目: 教程
-
华为轮值董事长郭平:虚拟技术创造现实价值
2026-05-14栏目: 教程
