本文为本人学习书籍《MySQL必知必会》笔记系列,欢迎持续关注,有问题随时留言评论,一起探讨学习~

18 全文本搜索

并非所有搜索引擎都支持全文搜索。最常用的两个搜索引擎MyISAM(支持全文搜索)和InnoDB(不支持)。

18.1启用全文本搜索

将要全文本搜索的列添加索引:在创建表时指定FULLTEXT或者在已有数据表上立即索引。

18.2进行全文本搜索

  1. MATCH()指定被搜索的列,
  2. AGAINST()指定要搜索的表达式
#全文本搜索在text列中包含'武汉'的行
SELECT text
FROM weibo
WHERE MATCH(text) Against('武汉');

使用LIKE也可完成上述搜索

SELECT COUNT(text)
FROM weibo
WHERE text LIKE '%武汉%';

18.3查询扩展

查询扩展用来设法放宽返回的全文本搜索的结果的范围。
例如查找与“武汉”相关的行,不一定包含武汉,但可能相关。

SELECT text
FROM weibo
WHERE MATCH(text) Against('武汉'WITH QUERY EXPANSION);

18.4布尔值搜索

下面举几个例子,说明某些操作符如何使用:

SELECT note_ text
FROM productnotes
WHERE Match(note_text)  Against('rabbit-bait' IN BOOLEAN MODE);

匹配rabbit,排除bait

SELECT note_ text
FROM productnotes
WHERE Match(note_text)  Against(' +rabbit +bait' IN BOOLEAN MODE);

这个搜索匹配包含词rabbit和bait的行。

SELECT note_ text
FROM productnotes
WHERE Match(note_text)  Against (' rbbit bait' IN BOOLEAN MODE);

没有指定操作符,这个搜索匹配包含rabit和bait中的至少一个词的行。

SELECT note_ text
FROM productnotes
WHERE Match(note_text)  Against('"rabbit bait"' IN BOOLEAN MODE);

这个搜索匹配短语rabbit bait而不是匹配两个词rabbit和bait。

SELECT note_ text
FROM productnotes
WHERE Match(note_text)  Against('>rabbit <carrot' IN BOOLEAN MODE);

匹配rabbit和carrot, 增加前者的等级,降低后者的等级。

SELECT note_ text
FROM productnotes
WHERE Match(note_text) Against('+safe+(combination)' IN BOOLEAN MODE);

这个搜索匹配词safe和combination,降低后者的等级

MySQL学习笔记:全文本搜索相关推荐

  1. mysql 学习记录 全文本搜索

    第十八章 全文本搜索 mysql最常用的引擎是MYISAM和InnoDb,前者支持全文本搜索,后者不支持. 全文本搜索搜索速度更快,搜索条件更精确,搜索结果更智能化.使用like子句也可以完成,但全文 ...

  2. MySQL数据检索+查询+全文本搜索

    [0]README 0.1)本文部分文字描述转自"MySQL 必知必会",旨在review"MySQL数据检索+查询+全文本搜索" 的基础知识: [1]使用子查 ...

  3. 《MySQL必知必会》学习笔记——组合查询、全文本搜索

    文章目录 第17章 组合查询 1. 创建组合查询 2. UNION规则 3. 包含或取消重复的行 4. 对组合查询结果排序 第18章 全文本搜索 1. 理解全文本搜索 2. 使用全文本搜索 2.1 启 ...

  4. MySql学习之组合查询(UNION)和全文本搜索(Match()和Against())

    组合查询 一.何为组合查询? 组合查询的目的就是利用UNION操作符将多条SELECT语句的查询结果组合成一个结果集,供我们使用. 有两种基本情况下需要使用组合查询: 1.在单个查询中从不同的表返回类 ...

  5. 快速回顾 MySQL:全文本搜索

    前提要述:参考书籍<MySQL必知必会> 文章目录 14.1 全文本搜索 14.1.1 启动全文本搜索 14.1.2 使用全文本搜索 14.1.3 使用查询扩展 14.1.4 使用布尔查询 ...

  6. MySQL(十)操纵表及全文本搜索

    一.创建表 MySQL不仅用于表数据操作,还可以用来执行数据库和表的所有操作,包括表本身的创建和处理. 创建表一般有如下两种方式: ①使用具有交互式创建和管理表的工具: ②直接使用MySQL语句操纵表 ...

  7. mysql全文本搜索

    前言 1️⃣ :mysql环境准备 2️⃣ :简单的表查询 3️⃣ :通配符+正则表达式 4️⃣ :mysql函数与分组 5️⃣ :子查询_联结查询_组合查询 第一部分:我们准备环境:安装数据库+创建 ...

  8. mysql 支持全文搜索_MySQL全文本搜索:启用全文本搜索支持

    一般在创建表时启用全文本搜索. CREATE TABLE 语句接受 FULLTEXT 子句,它给出被索引列的一个逗号分隔的列表. 下面的 CREATE 语句演示了 FULLTEXT 子句的使用: 输入 ...

  9. 超全MySQL学习笔记,416页满满知识,看完再也不怕学不会了

    全世界都在用MySQL,这句话毋庸置疑,数据库流行榜中揭示,MySQL排第二,仅次于Oracle,但排行榜上还有一个不容忽视的力量:MariaDB,如果把这支MySQL的独特力量与MySQL合并,My ...

最新文章

  1. seci-log 1.11 发布 增加了ftpserver,远程ftp,sftp采集简化配置等功能
  2. 初级开发者vs高级开发者 | 每日趣闻
  3. Linux多进程开发(三)进程创建之守护进程的学习
  4. 虚拟机+可信+云计算
  5. 获取手机当前显示的ViewController
  6. mysql主从复制及失败切换
  7. 视频分解图片原理;图片合成视频原理
  8. 计划策略-50-没有最终装配的计划
  9. The method setOnClickListener(View.OnClickListener) in the type View is not applicable
  10. C mysql批量写入_使用JDBC在MySQL数据库中快速批量插入数据
  11. 在WinForm中实现省市级联的效果
  12. Java PriorityQueue clear()方法与示例
  13. 从零开始配置服务器密码机的开发环境
  14. 大于小于优化_架构 - 以MySQL为例,详解数据库索引原理及深度优化
  15. 语言编程思维陈萌_这本书告诉你,计算机为何能读懂人类语言,编程思维让你更聪明...
  16. SQL server学习
  17. vscode实现右键文件夹选择open with code
  18. hao123劫持浏览器主页
  19. 软件测试——三角形问题测试用例练习
  20. html文字前画线代码,在div上画线

热门文章

  1. 常见的连续型随机变量分布
  2. STM32低功耗总结——转载
  3. 第十二届蓝桥杯嵌入式——赛后总结
  4. eplan好看的电缆图表_eplan中怎样才能把整个项目的端子图表或者电缆图表生成到我指定的位置...
  5. Jfreechart图表生成方法
  6. 如何用java给PDF添加一个图片水印?
  7. “花书” 《深度学习》经验法则--中文
  8. vue 移动端语音输入教程
  9. selenium中的三种等待方式以及显示等待和隐式等待区别
  10. 51单片机(1)单片机概述