Introduction to MySQL Full-Text Search

摘要:在本教程中,您将了解 MySQL 全文搜索及其功能。

如果您使用过 Google 或 Bing 等搜索引擎,那么您就使用过全文搜索或 FTS。搜索引擎将网站上的内容收集到数据库中,并允许您根据关键字进行搜索。

除了搜索引擎之外,FTS 还为博客、新闻、电子商务等网站上的搜索结果提供支持。

全文搜索是一种搜索与搜索条件不完全匹配的文档的技术。文档是包含文本数据的数据库实体,例如产品描述、博客文章和文章。

例如,您可以搜索Wood and Metal ,FTS 可以返回单独包含搜索词(仅WoodMetal的结果,或者返回包含不同顺序的词Word and MetalMetal and Wood的结果。

从技术上讲,MySQL支持使用LIKE运算符和正则表达式进行部分文本搜索。但是,当文本列很大并且表中的行数增加时,使用LIKE或正则表达式有一些限制:

表现

MySQL 必须扫描整个表,以根据LIKE语句中的模式或正则表达式中的模式找到确切的文本。

灵活搜索

LIKE和正则表达式都可以通过匹配模式进行搜索。很难进行灵活的搜索查询,例如查找描述包含car但不包含classic.

相关性排名

无法指定结果集中的哪一行与搜索词更相关。

由于这些限制,MySQL 在 5.6 中开始支持全文搜索。

MySQL 从文本数据创建FULLTEXT索引,并使用复杂的算法查找该索引,以确定与搜索查询匹配的行。

MySQL全文检索功能

以下是MySQL全文搜索的一些重要功能:

类似本机 SQL 的接口

MySQL提供类似SQL的语句来执行全文搜索。

全动态索引

当文本列的数据发生变化时,MySQL 会自动更新该列的索引。

索引大小适中

FULLTEXT索引的大小相对较小。

速度

最后但并非最不重要的一点是,基于复杂搜索查询的搜索速度很快。

请注意,并非所有存储引擎都支持全文搜索功能。在MySQL 5.6或更高版本中,只有MyISAM和InnoDB存储引擎支持全文搜索。

在本教程中,您了解了 MySQL 全文搜索及其功能。

本教程有帮助吗?