MySQL学习笔记:全文本搜索
本文为本人学习书籍《MySQL必知必会》笔记系列,欢迎持续关注,有问题随时留言评论,一起探讨学习~
18 全文本搜索
并非所有搜索引擎都支持全文搜索。最常用的两个搜索引擎MyISAM(支持全文搜索)和InnoDB(不支持)。
18.1启用全文本搜索
将要全文本搜索的列添加索引:在创建表时指定FULLTEXT或者在已有数据表上立即索引。
18.2进行全文本搜索
- MATCH()指定被搜索的列,
- 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学习笔记:全文本搜索相关推荐
- mysql 学习记录 全文本搜索
第十八章 全文本搜索 mysql最常用的引擎是MYISAM和InnoDb,前者支持全文本搜索,后者不支持. 全文本搜索搜索速度更快,搜索条件更精确,搜索结果更智能化.使用like子句也可以完成,但全文 ...
- MySQL数据检索+查询+全文本搜索
[0]README 0.1)本文部分文字描述转自"MySQL 必知必会",旨在review"MySQL数据检索+查询+全文本搜索" 的基础知识: [1]使用子查 ...
- 《MySQL必知必会》学习笔记——组合查询、全文本搜索
文章目录 第17章 组合查询 1. 创建组合查询 2. UNION规则 3. 包含或取消重复的行 4. 对组合查询结果排序 第18章 全文本搜索 1. 理解全文本搜索 2. 使用全文本搜索 2.1 启 ...
- MySql学习之组合查询(UNION)和全文本搜索(Match()和Against())
组合查询 一.何为组合查询? 组合查询的目的就是利用UNION操作符将多条SELECT语句的查询结果组合成一个结果集,供我们使用. 有两种基本情况下需要使用组合查询: 1.在单个查询中从不同的表返回类 ...
- 快速回顾 MySQL:全文本搜索
前提要述:参考书籍<MySQL必知必会> 文章目录 14.1 全文本搜索 14.1.1 启动全文本搜索 14.1.2 使用全文本搜索 14.1.3 使用查询扩展 14.1.4 使用布尔查询 ...
- MySQL(十)操纵表及全文本搜索
一.创建表 MySQL不仅用于表数据操作,还可以用来执行数据库和表的所有操作,包括表本身的创建和处理. 创建表一般有如下两种方式: ①使用具有交互式创建和管理表的工具: ②直接使用MySQL语句操纵表 ...
- mysql全文本搜索
前言 1️⃣ :mysql环境准备 2️⃣ :简单的表查询 3️⃣ :通配符+正则表达式 4️⃣ :mysql函数与分组 5️⃣ :子查询_联结查询_组合查询 第一部分:我们准备环境:安装数据库+创建 ...
- mysql 支持全文搜索_MySQL全文本搜索:启用全文本搜索支持
一般在创建表时启用全文本搜索. CREATE TABLE 语句接受 FULLTEXT 子句,它给出被索引列的一个逗号分隔的列表. 下面的 CREATE 语句演示了 FULLTEXT 子句的使用: 输入 ...
- 超全MySQL学习笔记,416页满满知识,看完再也不怕学不会了
全世界都在用MySQL,这句话毋庸置疑,数据库流行榜中揭示,MySQL排第二,仅次于Oracle,但排行榜上还有一个不容忽视的力量:MariaDB,如果把这支MySQL的独特力量与MySQL合并,My ...
最新文章
- seci-log 1.11 发布 增加了ftpserver,远程ftp,sftp采集简化配置等功能
- 初级开发者vs高级开发者 | 每日趣闻
- Linux多进程开发(三)进程创建之守护进程的学习
- 虚拟机+可信+云计算
- 获取手机当前显示的ViewController
- mysql主从复制及失败切换
- 视频分解图片原理;图片合成视频原理
- 计划策略-50-没有最终装配的计划
- The method setOnClickListener(View.OnClickListener) in the type View is not applicable
- C mysql批量写入_使用JDBC在MySQL数据库中快速批量插入数据
- 在WinForm中实现省市级联的效果
- Java PriorityQueue clear()方法与示例
- 从零开始配置服务器密码机的开发环境
- 大于小于优化_架构 - 以MySQL为例,详解数据库索引原理及深度优化
- 语言编程思维陈萌_这本书告诉你,计算机为何能读懂人类语言,编程思维让你更聪明...
- SQL server学习
- vscode实现右键文件夹选择open with code
- hao123劫持浏览器主页
- 软件测试——三角形问题测试用例练习
- html文字前画线代码,在div上画线