MySQL 自然语言 FULLTEXT 搜索2025年3月17日 | 阅读 3 分钟 自然语言 FULLTEXT 搜索 将搜索字符串解释为自然人类语言中的字面短语。它不支持特殊字符。如果未指定修饰符或指定了 IN NATURAL LANGUAGE MODE 修饰符,则默认启用它。 在此搜索模式下,MySQL 对与自然人类语言查询相关的每一行执行搜索。我们可以通过一个正浮点数来表示相关性。如果为零,则表示没有相似性。相关性是根据各种因素计算的,包括单词数量、唯一单词数量、集合中的总单词数量以及包含特定单词的行数。 我们可以使用 MATCH() 和 AGAINST() 函数执行自然语言全文搜索。MATCH() 函数用于指定要执行搜索的列名,AGAINST() 函数用于确定要使用的搜索字符串。 示例让我们首先创建一个名为 posts 的表,其中包含一个 FULLTEXT 索引,包括 title 和 descriptions 列。查询如下: 接下来,我们将向此表中填充记录,以解释全文搜索。 我们现在将使用 MATCH() 和 AGAINST() 函数执行全文搜索,如下所示: 这是我们对字符串 "tutorial" 执行全文搜索后的输出: ![]() 如果您想获取包含 Java 和 Workbench 词语的帖子信息,可以使用以下语法: 执行该语句,我们将得到以下结果: ![]() 我们知道 AGAINST() 函数默认使用 IN NATURAL LANGUAGE MODE 搜索修饰符;因此,我们可以在查询中省略它。让我们在上面的语句中使用 IN NATURAL LANGUAGE MODE 搜索修饰符,看看结果。 执行查询,我们将得到与之前相同的结果。 ![]() 如果我们想计算匹配数量,可以使用以下查询: 这是结果: ![]() 如果我们想明确检索相关性值,我们需要使用以下语法。此语句不排序返回的行,因为它既不使用 WHERE 也不使用 ORDER BY 子句。 执行查询,我们将得到期望的结果。 ![]() 如果我们想检查文本相关性并根据相关性递减排序行,可以使用以下查询: 执行查询,我们将得到期望的结果。 ![]() 在使用 MySQL 全文搜索时,我们必须考虑以下几点::
下一主题布尔全文搜索 |
MySQL BOOLEAN FULLTEXT SEARCH 布尔搜索模式是 MySQL 中一种额外的全文搜索形式。与自然语言搜索相比,它更侧重于单词,也就是说,它搜索的是单词而不是概念。它允许我们根据非常复杂的...
5 分钟阅读
MySQL ngram 全文解析器 在本文中,我们将学习 MySQL ngram 全文解析器的用法,它支持对日语、中文和韩语等表意语言进行全文搜索。内置的 MySQL 全文解析器使用空格作为单词之间的分隔符,该分隔符决定了...
5 分钟阅读
MySQL 查询扩展 FULLTEXT 搜索 我们知道每个用户都根据自己的知识搜索信息。他们使用一些关键词来搜索信息,而这些关键词太短了。我们可以解决这个问题并帮助用户找到他们想要的东西,使用一个...
阅读 2 分钟
MySQL 全文搜索 (FTS) 全文搜索是一种用于检查文档中可能不完全匹配搜索条件的所有单词的搜索技术。记录包含文本数据,如产品描述、博客文章、文章等。MySQL 支持全文索引和搜索,可用于...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India