全文索引(也称全文检索)是目前搜索引擎使用的一种关键技术。它能够利用分词技术等多种算法智能分析出文本文字中关键词的频率和重要性,然后按照一定的算法规则智能地筛选出我们想要的搜索结果。
全文索引始终发生在整个列上,并且不支持列前缀索引。

全文索引只能使用 InnoDB或 MyISAM表格,并且只能用于创建CHAR, VARCHAR或 TEXT列。
MySQL提供了一个内置的全文ngram解析器,支持中文,日文和韩文(CJK),以及一个可安装的日文版MeCab全文解析器插件。(解析差异可参考:https://dev.mysql.com/doc/refman/8.0/en/fulltext-search-ngram.html)
FULLTEXT索引定义可以在被给予CREATE TABLE的语句中创建表时,或者稍后使用添加 ALTER TABLE或 CREATE INDEX
对于大型数据集,将数据加载到没有FULLTEXT索引的表中,然后在此之后创建索引要快得多,而不是将数据加载到具有现有FULLTEXT索引的表中(先创建表并插入所有数据后再创建全文索引,不要在创建表时就直接创建全文索引)。

创建全文索引后,使用MATCH() ... AGAINST语法执行全文搜索 。 
MATCH()采用逗号分隔的列表来命名要搜索的列。 AGAINST获取要搜索的字符串,以及指示要执行的搜索类型的可选修饰符。搜索字符串必须是在查询评估期间保持不变的字符串值

SELECT * FROM table WHERE MATCH(col1,col2) AGAINST (‘查询字符串’);

三种类型的全文搜索:

1·自然语言搜索将搜索字符串解释为自然人类语言(自由文本中的短语)中的短语。没有特殊运算符,但双引号(“)字符除外。禁用词列表适用。(禁用词、可参考:https://dev.mysql.com/doc/refman/8.0/en/fulltext-stopwords.html#fulltext-stopwords-stopwords-for-myisam-search-indexes)

如果IN NATURAL LANGUAGE MODE给出修饰符或者没有给出修饰符,则全文搜索是自然语言搜索 。有关更多信息,可参考:https://dev.mysql.com/doc/refman/8.0/en/fulltext-natural-language.html

2·布尔搜索使用特殊查询语言的规则来解释搜索字符串。该字符串包含要搜索的单词。它还可以包含指定要求的运算符,以便在匹配的行中必须存在或不存在单词,或者它应该比通常更高或更低的权重。搜索索引中省略了某些常用词(停用词),
如果搜索字符串中存在,则不匹配。该IN BOOLEAN MODE修饰符指定一个布尔搜索。有关更多信息,可参考:https://dev.mysql.com/doc/refman/8.0/en/fulltext-boolean.html

3·查询扩展搜索是自然语言搜索的修改。搜索字符串用于执行自然语言搜索。然后将搜索返回的最相关行中的单词添加到搜索字符串中,然后再次进行搜索。查询返回第二次搜索中的行。该IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION或WITH QUERY EXPANSION修改指定查询扩展搜索。有关更多信息,可参考:https://dev.mysql.com/doc/refman/8.0/en/fulltext-query-expansion.html

MySql的全文索引FULLTEXT(Mysql8.0版本)相关推荐

  1. php7废弃了MySQL,关于mysql8.0版本和PHP7不兼容的问题

    新安装了mysql8.0版本.当PHP连接数据库的时候,会出现一个情况就是连接数据库失败,一般来说会出现以下两种情况: 1.报错:PDO::__construct(): Server sent cha ...

  2. Linux安装MySQL的完整步骤并有关MySQL8.0版本的问题方法

    目录 QUESTION:Linux安装MySQL的完整步骤? ANSWER: 一:使用wget 直接下载 二:安转软件源,将platform-and-version-specific-package- ...

  3. win10装mysql哪个版本好用吗_win10安装两个不同版本的mysql(mysql5.7和mysql-8.0.19)

    win10中安装mysql5.7后,安装mysql-8.0.19 在D:\mysql-8.0.19-winx64目录下创建一个my.ini文件 [mysqld]# 设置3307端口 port=3307 ...

  4. FineReport——JDBC 连接 MySQL8.0 版本数据库

    1.描述 下面介绍 Windows 操作系统下 JDBC 连接 MySQL8.0 版本数据库的两种方法. 2. 方法一 1)删除%FR_HOME%\webapps\webroot\WEB-INF\li ...

  5. 赶紧看一下mysql8.0版本的新特性,你的数据库是不是该升级了

    这里写目录标题 前言 mysql8.0的新特性 1.账户安全 2.优化器索引 2.1.隐藏索引(invisible) 2.2.降序索引 2.3.函数索引 3.SQL语句增强 4.新增数据分析函数 5. ...

  6. mysql8.0版本的服务器名称_Linux服务器配置-VSFTP服务配置(六)

    上文:Linux服务器配置-VSFTP服务配置(五) 上文中已经介绍了使用数据库文件方式配置虚拟用户认证登录FTP服务器,这篇文件将介绍通过数据库方式(vsftpd服务+pam_mysql+MySQL ...

  7. mysql8.0版本的服务器名称_MySQL 8.0安装部署-运维笔记

    MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 一.  Mysql8.0版本相比之前版本的一些特性 1) ...

  8. Navicat连接MySQL8.0版本时出现Client does not support authentication protocol requested by server;报错的问题解决办法

    Windown系统下 遇到 Navicat连接MySQL8.0版本时出现Client does not support authentication protocol requested by ser ...

  9. Windows10 MySQL8.0版本的压缩包安装方式

    首先,到mysql官网下载mysql-8.0.21-winx64.zip 将压缩包解压到任一目录 解压后进入mysql-8.0.21-winx64(默认目录)下 新建一个my.ini文件,默认情况下是 ...

  10. 【MySQL主从复制】使用MySQL8.0.17的clone技术在线搭建主从复制环境

    [MySQL主从复制]使用MySQL8.0.17的clone技术在线搭建主从复制环境 参考:https://www.xmmup.com/dbbao33shiyongmysql8-0-17declone ...

最新文章

  1. 【C#文件锁】C#加密解密文件小工具
  2. foreach对集合的输出作用
  3. (1)hibenrate入门例子
  4. ehcache 默认大小_简单的使用ehcache
  5. 基于S2SH的电子商务网站系统性能优化
  6. SSL/TLS 配置
  7. shell编程入门步步高(三、shell的基本结构)
  8. 使用vagrant快速创建Linux(centos/7)
  9. linux下数学公式的编辑器,Linux下的公式编辑器——libreoffice math 使用快速入门
  10. windows对应字体
  11. 自用live2d制作
  12. 【经典】对static关键字深入理解
  13. C#对Dictionary的按Value排序
  14. 分享一些Photoshop的教程电子档(pdf格式),初学者与设计师适用
  15. 什么是抖音小程序 小程序该怎么做
  16. csr_matrix详细解读
  17. 新发布!易聊 SCRM 正式上线
  18. Genymotion ova官方下载地址
  19. 毕业设计 基于stm32的火灾报警系统设计与实现 - 单片机 物联网
  20. 中国反垄断第三枪,枪枪致命!涉及阿里、京东、百度、滴滴等被国家顶格处罚!...

热门文章

  1. 字符串工具类总结(全)
  2. Web项目实战 | 购物系统v2.0 | 开发记录(九)Controller层返回数据的封装 | 商品批量操作 | 五表联立实现商品搜索
  3. QPM 之悬浮窗助力性能优化
  4. 实用技巧|AD19快捷键大全
  5. 常用APDU指令响应码
  6. 微信小程序 Springboot校园招聘求职系统
  7. lower_bound( )和upper_bound( )的返回值及用法
  8. 视频美颜SDK在直播领域的应用与挑战
  9. 微信小程序图片压缩或者进行Base64转码
  10. Pyecharts(三) —— 星巴克门店分布