#mysql全文索引与停止词/*1.全文索引(FULLTEXT INDEX) FULLTEXT索引仅可用于MyISAM表,不可用于INNODB表
2.全文索引在mysql的默认情况下,对于中文意义不大
因为英文有空格,标点符号来拆成单词,进而对单词进行索引
而对于中文,没有空格来隔开单词,mysql无法识别每个中文词中文分词并不是一件很简单的事情,真正能把中文分词这件事
情做好的公司并不多
中文分词其实是一门挺大的学问,千万不要小看这件事情经常听到一些人说,这很简单,那很简单,真正叫他去做的时
候,他才发现并非表面上的那么简单,大家以后少说这很简单,那很
简单的这类话,因为这会让人觉得你的头脑太过于简单。*//*全文索引用法:
MATCH(全文索引名) AGAINST ('你要搜素的字符串')*//*全文索引的停止词:
全文索引不针对非常频繁的词做索引
如:this,is,you,my,me等等,就像我们汉
语中的我,你,他,的,是,等等这些字和词语使用的非常频繁,不
会对这些使用频繁的词语做索引*/CREATE TABLE account2(
id int,
email VARCHAR(30),
telephone CHAR(11),
introduce VARCHAR(300),
#introduce text,
FULLTEXT KEY (introduce)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;#添加全文索引
ALTER TABLE account2 ADD FULLTEXT (introduce);#同义词:是指意义相同的一组词语
#EXPLAIN语句可以用作DESC(DESCRIBE)的一个同义词,以下效果相同
EXPLAIN account2;
DESC account2;
DESCRIBE account2;#
SHOW INDEX FROM account2;
SHOW KEYS FROM account2;#
SELECT * from account2;#查看建表的sql语句
SHOW CREATE TABLE account2;
#以下是建表的sql语句
/*
CREATE TABLE `account2` (`id` int(11) DEFAULT NULL,`email` varchar(30) DEFAULT NULL,`telephone` char(11) DEFAULT NULL,`introduce` varchar(300) DEFAULT NULL,FULLTEXT KEY `introduce` (`introduce`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
*/#插入中文
INSERT INTO account2 VALUES(1, 'a@163.com', '123', '喜欢看水浒传,喜欢中国四大名著,酷爱文学');
INSERT INTO account2 VALUES(2, 'b@163.com', '456', '天若有情天亦老,人间正道是沧桑');
INSERT INTO account2 VALUES(3, 'c@163.com', '789', '乘风破浪会有时,直挂云帆济沧海');
INSERT INTO account2 VALUES(4, 'd@163.com', '012', '一万年太久,只争朝夕');
INSERT INTO account2 VALUES(4, 'd@163.com', '012', '江山如此多娇,引无数英雄竞折腰');
#插入英文
INSERT INTO account2 VALUES
(1, 'a@163.com', '123', 'welcome to china, welcome to my hometown 江西省赣州市于都县');
INSERT INTO account2 VALUES
(2, 'b@163.com', '456', 'Education is not the filling of a pail, but the lighting of a fire.');
INSERT INTO account2 VALUES
(3, 'c@163.com', '789', 'The young always have the same problem: how to rebel and conform at the same time. They have now solved this by defying their parents and copying one another. ');
INSERT INTO account2 VALUES
(4, 'd@163.com', '012', 'A man is not old until regrets take the place of dreams.');
INSERT INTO account2 VALUES
(4, 'd@163.com', '012', 'If you are an introvert, force yourself to be an extravert. You\'ll be happier.');#
SELECT * from account2;#全文索引在mysql的默认情况下,对于中文意义不大
#全文索引对中文不会发挥作用
SELECT *, MATCH(introduce) AGAINST ('水浒') AS '匹配度','水浒' FROM account2;
SELECT *, MATCH(introduce) AGAINST ('朝夕') AS '匹配度','朝夕' FROM account2;
SELECT *, MATCH(introduce) AGAINST ('于都县') AS '匹配度','于都县' FROM account2;#
SELECT *, MATCH(introduce) AGAINST ('filling') AS '匹配度','filling' FROM account2;
SELECT *, MATCH(introduce) AGAINST ('welcome') AS '匹配度','welcome' FROM account2;
SELECT *, MATCH(introduce) AGAINST ('hometown') AS '匹配度','hometown' FROM account2;
SELECT *, MATCH(introduce) AGAINST ('conform') AS '匹配度','conform' FROM account2;
SELECT *, MATCH(introduce) AGAINST ('regrets') AS '匹配度','regrets' FROM account2;
SELECT *, MATCH(introduce) AGAINST ('introvert') AS '匹配度','introvert' FROM account2;
SELECT *, MATCH(introduce) AGAINST ('yourself') AS '匹配度','yourself' FROM account2;#全文索引对中文不会发挥作用
#查不到数据
SELECT * FROM account2 WHERE MATCH(introduce) AGAINST ('水浒');
#查不到数据
SELECT * FROM account2 WHERE MATCH(introduce) AGAINST ('于都县');
#查不到数据(遇到了停止词)
SELECT * FROM account2 WHERE MATCH(introduce) AGAINST ('welcome');
#可以查到数据
SELECT * FROM account2 WHERE MATCH(introduce) AGAINST ('hometown');#
EXPLAIN SELECT * FROM account2 WHERE MATCH(introduce) AGAINST ('hometown');

mysql全文索引与停止词相关推荐

  1. mysql 全文索引fulltext初始

    MySQL使用全文索引(fulltext index) 1.创建全文索引(FullText index) 旧版的MySQL的全文索引只能用在MyISAM表格的char.varchar和text的字段上 ...

  2. MySQL全文索引怎么创建

    mysql全文索引 很慢,速度不如like的百分之一 从explain开始说起吧,很显然第一个sql语句压根没用任何索引(key列内什么都没有)!第二个倒是用到索引,却是主键索引,并非你添加的full ...

  3. mysql全文索引含义_什么是全文索引,为什么要使用全文索引

    导言:技术是为了解决实际问题的,如果脱离了实际的问题空谈技术,就象是不知道目标而学习一样,效率低且最后一头雾水.因此本文将通过抛出问题--明确目标--解决问题的方式来讲述 全文索引. 抛出问题: 1什 ...

  4. InnoDB MySQL 全文索引 学习笔记

    最近在学习MySQL全文索引的知识,基本搞清了功能以及使用方式,整理了相关资料分享出来一起学习进步哈 目录 1. 倒排索引 2. InnoDB全文检索 3. MySQL全文检索 3.1 Natural ...

  5. MySQL全文索引应用简明教程

    MySQL全文索引应用简明教程 本文从以下几个方面介绍下MySQL全文索引的基础知识: MySQL全文索引的几个注意事项 全文索引的语法 几种搜索类型的简介 几种搜索类型的实例 全文索引的几个注意事项 ...

  6. 全文检索、数据挖掘、推荐引擎系列4---去除停止词添加同义词

    Lucene对文本解析是作为全文索引及全文检索的预处理形式出现的,因此在一般的Lucene文档中,这一部分都不是重点,往往一带而过,但是对于要建立基于文本的内容推荐引擎来说,却是相当关键的一步,因此有 ...

  7. mysql全文索引含义_【分针网】MySQL全文索引应用简明教程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文从以下几个方面介绍下MySQL全文索引的基础知识:1.MySQL全文索引的几个注意事项2.全文索引的语法3.几种搜索类型的简介4.几种搜索类型的实例 ...

  8. ik与拼音分词器,拓展热词/停止词库

    说明:本篇文章讲述elasticsearch分词器插件的安装,热词库停止词库的拓展,文章后面提到elasticsearch ,都是以es简称. 以下分词器的安装以ik分词器和pinyin分词器为例说明 ...

  9. MYSQL全文索引及Match() against()踩坑记录-超详细超实用

    场景一 当我们使用mysql模糊查询时,经常会遇到如下情况: 如果我们customer_manager_no字段是可能会存多个值,用逗号隔开这种:当我们想查找出customer_manager_no字 ...

最新文章

  1. 用python做一个数据查询软件_Python实现功能简单的数据查询及可视化系统
  2. “裁员” + 滤镜 = “毕业”
  3. python对文件的读操作方法有哪些-Python文件常用操作方法
  4. Quartz-Spring集成Quartz通过XML配置的方式
  5. vue城市三级联动组件 vue-area-linkage
  6. 前端学习(2400):关于aixos的create方法
  7. 学生信息管理系统c语言课设,学生信息管理系统C语言课设.doc
  8. 深度评测阿里云、百度云、腾讯云和华为云
  9. 远程连接windows系统提示:其他用户要远程登录,需要通过远程桌面服务进行登录的权限......
  10. java模拟内存溢出并分析_模拟内存溢出通过MAT分析
  11. JDBC操作数据库的基本步骤:
  12. Programming pearls 编程珠玑的题目
  13. CF1169(div2)题解报告
  14. 遗传算法matlab_遗传算法 (GA) 进行多参数拟合 【MATLAB】
  15. js+php+大转盘,H5 Canvas抽奖大转盘代码实现及总结
  16. TMS320DM642调试出现#10247-D creating output section .capChaACrSpace without a SECTIONS 解决办法...
  17. 电子计算机工程 专业大学排名,电子与计算机工程专业大学排名【科教评价网版】...
  18. 【强化学习】优势演员-评论员算法(Advantage Actor-Critic , A2C)求解倒立摆问题 + Pytorch代码实战
  19. [易飞]如何实现同单据两种不同凭证设计方式?(只打印单头单尾金额,多页最后一页面显示金额)
  20. A4纸尺寸大小是多少

热门文章

  1. 微信小程序如何刷新当前页面或者刷新上一个页面
  2. python绘制分形图基础_python绘制分形图
  3. 字节跳动疯狂挖人,校招平均年薪30万,我还有机会吗?
  4. AppOps命令分析
  5. 实验三 使用CSS3
  6. 8大基本数据类型各占多少字节和一些单位常识
  7. 使用Keras的面部表情识别
  8. 内向的孩子学医好还是学计算机好,什么性格适合学医 哪种人不适合学医
  9. 医学生学计算机建议,医学生计算机能力的培养
  10. JAVA javaweb JSP水果管理系统源码(水果进销存管理系统水果管理系统(水果进销存)