Navicat使用教程:如何在在MySQL中执行全文搜索(第1部分)

翻译|使用教程|编辑:鲍佳佳|2020-07-10 10:54:06.570|阅读 23 次

概述:全文搜索(FTS)是搜索引擎用来在其数据库中查找结果的技术之一。你也可以利用FTS的功能来搜索对于Like运算符而言过于复杂的模式。在今天的文章中,我们将学习如何在MySQL中应用全文搜索。在第2部分中,我们将使用Navicat for MySQL作为我们的数据库客户端尝试进行一些查询。

# 您正在找协同办公软件吗?点击这里站长给您推荐 #

Navicat for MySQL是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。数据传输、数据同步和结构同步让你以低成本轻松快速地迁移数据。提供详细的指引,在各种数据库之间传输数据。比对和同步数据库的数据和结构。只需几秒钟就能设置和部署比对,并获得你要运行更改的详细脚本。

点击下载Navicat for MySQL最新试用版

全文搜索解释

FTS的目的是获取那些仅仅是搜索条件与文本数据松散匹配的文档。 因此,搜索“cars and truck”,将分别返回包含两个词汇的结果,例如“cars”或“trucks”,或者包含不同顺序的词汇(“truck and cars”),或包含搜索词汇的变体,例如 “car”和“truck”(单数形式)。这使企业可以猜测用户正在搜索什么,并在更快的时间内返回更相关的结果。

像MySQL这样的数据库管理系统(DBMS)确实允许使用LIKE表达式进行准文本查找。 但是,Like子句有一些缺点:
1.它们在大型数据集上往往表现不佳。
2.它们受限于完全匹配用户输入,这意味着即使实际上存在相关信息的记录,查询也可能不会返回  任何结果。

MySQL中的全文搜索

为了在MySQL中执行全文搜索,你必须在支持全文搜索的字段中添加FULLTEXT索引。 此外,全文索引只能与MyISAM和InnoDB表一起使用。最后,请注意,只有字段类型为CHAR,VARCHAR或TEXT的列才能创建全文索引。在CREATE TABLE语句中可以给出FULLTEXT索引定义,或者稍后使用ALTER TABLE或CREATE INDEX命令添加。大型数据集的提示:相比先创建FULLTEXT索引然后再加载数据,将数据先加载到没有FULLTEXT索引的表中,然后再创建索引,这样会快得多。

全文搜索分为三种不同的类型:

1.自然语言全文搜索
2.布尔型全文搜索
3.查询扩展搜索

在第2部分中的清单中,我们将依次介绍这些内容。

一个基础例子

在Sakila示例数据库中,film表中包含了商店电影收藏中每部电影的信息,包括其标题、放映时间和描述。我们可以使用“表单视图”详细查看film表记录。只有完整版本提供表单视图功能,可让我们以表单的形式查看、更新、插入或删除数据,其中当前记录以详细信息显示。还有导航栏可以让我们在记录之间快速切换。

film_table

film_table

通过将FULLTEXT索引添加到描述列,我们可以在其上添加全文搜索功能。我们也可以发出ALTER TABLE或CREATE INDEX命令,但是Navicat有一种更简单的方法!表设计器包含许多与不同表对象有关的选项卡。其中包括列定义、索引、外键、触发器和选项等。我们可以通过使用“字段选择器”对话框选择描述字段,在描述字段上添加全文索引,然后从“索引类型”下拉列表中选择“全文”:

film_indexes

film_indexes
请确保将索引方法留空。

单击保存按钮以创建新索引:

desc_index
desc_index

总结

现在,我们已经为全文搜索准备了数据库,我们将在第2部分中学习如何使用全文搜索功能。
Navicat for MySQL感兴趣吗?你可以免费试用 14天

如果你对我们的产品感兴趣或者有任何疑问,欢迎咨询慧都在线客服>>



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Navicat for MySQL

Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部
在线客服系统
live chat