mysql全文检索 中文_mysql全文索引不支持中文的解决方案
前面我们已经知道了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、将中文转换为base64编码
$data = '我要坚持学php';
$data = base64_encode($data); //返回的结果就是编码后的字符串,这里省略了分词这个步骤
但是这种方式有个缺点,当用户搜索拼音的时候检索不出结果;
2、将中文转换为拼音
网上有很多将中文转换为拼音的源码,具体如何实现大家可以网上搜索《php中文转换成拼音代码》
mysql全文检索 中文_mysql全文索引不支持中文的解决方案相关推荐
- mysql latin1 中文_mysql 的 latin1 支持中文
By fireworks2@foxmail.com 初学者往往会犯糊涂,mysql 的默认字符集 latin1 是否支持中文? 初步分析表明,是的,确实支持中文!(是初步的结论,只做了初步的分析) 1 ...
- latin mysql 中文_mysql的latin1支持中文
初学者往往会犯糊涂,mysql 的默认字符集 latin1 是否支持中文? 初步分析表明,是的, 确实支持中文! (是初步的结论,只做了初步的分析) 1. 先来看看latin1(参考百度百科) Lat ...
- nginx文件服务器中文路径,nginx配置文件支持中文路径.htm
nginx配置文件支持中文路径 nginx配置文件支持中文路径 例子: server { color=#ff0000>charset utf-8; listen 8088; se ...
- mysql 中文搜索插件_支持中文的MySQL 5.1+ 全文检索分词插件
经过不停的尝试和努力,以最新的 mysql 5.1.11-beta 为基础,制作的分词插件已经测试成功,现在发布如下. 由于 mysql 5.1.x 本身的架构作了修改,所以增加分词直接以插件形式方式 ...
- mysql查询中文_MySQL中like查询中文问题的解决
在做MySQL的Like查询是发现中文搜索总是不争取,从网上找到了几个解决方法,大家可以看看:方法一: 解决方法是对于包含中文的字段加上quot 在做MySQL的Like查询是发现中文搜索总是不争取, ...
- (转)全文检索技术学习(三)——Lucene支持中文分词
http://blog.csdn.net/yerenyuan_pku/article/details/72591778 分析器(Analyzer)的执行过程 如下图是语汇单元的生成过程: 从一个 ...
- mysql连接中文_MYSQL远程连接查询中文乱码
当在服务器远程连接mysql服务器的时候,登录后编码方式latin1:接着我在mysql命令窗口修改为utf-8后,再次远程登录,编码方式依然为latin1: #mysql -h 192.168.1. ...
- mysql 全文检索 教程_MySQL:详细说明MySQL全文检索图文详细教程
软件安装:装机软件必备包 本站电脑知识提供电脑入门知识,计算机基础知识,计算机网络应用基础知识,电脑配置知识,电脑故障排除和电脑常识大全,帮助您更好的学习电脑!不为别的,只因有共同的爱好,为中国互联网 ...
- 怎么改mysql的搜索引擎_MySQL全文索引实现简单版搜索引擎实例代码
前言 只有Innodb和myisam存储引擎能用全文索引(innodb支持全文索引是从mysql5.6开始的) char.varchar.text类型字段能创建全文索引(fulltext index ...
- basename php 中文,php basename不支持中文怎么办
不久前遇到一段代码使用了basename,我文件名是中文的,每次返回都只有后缀.后来发现basename函数有猫腻,不支持中文文件名,但凡有以中文开头的文件名将被忽略了. 函数说明/** * 从路径中 ...
最新文章
- 用户空间和内核空间通讯之【proc文件系统】
- 《四世同堂》金句摘抄(二)
- MATLAB中的S-Function的用法(C语言)
- 微信小程序订票选座PHP后台网站MySQL数据库和无前端小程序版本两个程序
- C#—接口和抽象类的区别?
- oracle怎么存视频地址,oracle的警告文件存储方式和地址
- 架构运维篇(二):Centos7/Linux安装部署Tomcat环境
- mysql 转字符串 blob_BLOB转换为字符串或图像/ PHP或SQL
- PDF转CAD经典软件有什么
- glibc 知:手册08:消息翻译
- android 卸载残留代码,完全卸载AndroidStudio(示例代码)
- 锐捷服务器虚拟化技术_交换机虚拟化技术.ppt
- 短线上岸西安电子科技大学考研811信号与电路分析经验分享
- android变身蓝牙键鼠,使用BluetoothHidDevice将安卓手机同时模拟成鼠标和键盘
- 英语语法——状语和状语从句
- Visual Studio Code(VSCODE)修改字体、字号
- CPP-week thirteen
- 电子邮件SMTP协议原始命令码和工作原理
- centos7网卡链路聚合
- 马云和史玉柱到底谁说了谎?