MySQL全文搜索简介
简介:在本教程中,您将学习MySQL全文搜索及其功能。
如果您使用过Google或Bing之类的搜索引擎,则使用了全文搜索或FTS。
搜索引擎将网站上的内容收集到数据库中,并允许您基于关键字进行搜索。
除搜索引擎外,FTS还可以在博客,新闻,电子商务等网站上提供搜索结果。
全文搜索是一种搜索与搜索条件不完全匹配的文档的技术。
文档是包含文本数据(例如,产品说明,博客文章和文章)的数据库实体。
例如,您可以搜索"木材"和"金属",FTS可以返回分别包含所搜索词的结果,仅是"木材"或"金属",或者返回包含单词和金属,或"金属和木材"顺序不同的结果。
从技术上讲,MySQL通过使用LIKE运算符和正则表达式支持部分文本搜索。
但是,当文本列很大并且表中的行数增加时,使用LIKE或正则表达式会有一些限制:
性能
MySQL必须扫描整个表格以根据LIKE语句中的模式或正则表达式中的模式找到确切的文本。
灵活的搜索
LIKE和正则表达式都可以通过匹配模式进行搜索。
很难进行灵活的搜索查询,例如查找描述中包含汽车而不是经典产品的产品。
相关性排名
无法指定结果集中的哪一行与搜索词更相关。
由于这些限制,MySQL在5.6中开始支持全文搜索。
MySQL使用复杂的算法从文本数据创建FULLTEXT索引并在该索引上查找,以确定与搜索查询匹配的行。
MySQL全文搜索功能
以下是MySQL全文搜索的一些重要功能:
类似本机SQL的接口
MySQL提供了类似于SQL的语句来执行全文搜索。
全动态索引
只要该列的数据发生更改,MySQL就会自动更新该文本列的索引。
中等索引大小
FULLTEXT索引的大小相对较小。
速度
最后但并非最不重要的一点是,它可以基于复杂的搜索查询进行快速搜索。
请注意,并非所有存储引擎都支持全文搜索功能。
在MySQL 5.6或更高版本中,仅MyISAM和InnoDB存储引擎支持全文搜索。
在本教程中,您学习了MySQL全文搜索及其功能。