MySQL 查询扩展

一、MySQL 查询扩展 介绍

我们知道每个用户都根据他们的知识搜索信息。他们使用一些关键字来搜索信息,而这些关键字太短了。我们可以解决这个问题,并使用 MySQL 引入的一个新概念,即查询扩展来帮助用户找到他们想要的东西。

MySQL中的查询扩展用于扩展基于自动相关反馈或盲查询扩展的全文搜索的搜索结果。使用查询扩展时,MySQL全文搜索引擎执行以下步骤:

第 1 步:它将首先搜索与给定搜索查询匹配的所有行。

第 2 步:它将通过检查搜索中的所有行来找到所有相关的单词。

第 3 步:最后,它会根据这些相关词而不是用户指定的原始关键词再次搜索。

在理解了查询扩展的概念之后,我们可能会清楚,当搜索结果太短时,我们可以使用查询扩展。我们可以再次执行搜索,但用户可以通过这个概念获得更多与他们正在寻找的内容相关的信息。

如果我们要使用查询扩展全文搜索,我们需要在 AGAINST() 函数中添加WITH QUERY EXPANSION搜索修饰符。换句话说,它是通过在搜索短语后面添加 WITH QUERY EXPANSION 或 IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION 来启用的。

以下是说明MySQL中此搜索的基本语法:

SELECT column_lists FROM table_name  
WHERE MATCH(column1, column2)  
AGAINST('keyword', WITH QUERY EXPANSION);  

二、MySQL 查询扩展 示例

假设我们有一个名为posts的表,其中包含以下数据。该表有一个标题和描述列作为全文索引。

以下示例显示名称包含“ MySQL”术语的帖子信息的搜索结果,而不使用查询扩展:

mysql> SELECT * FROM posts   
WHERE MATCH(title, descriptions)   
AGAINST('MySQL');  

执行查询将返回三个包含“MySQL”术语的帖子名称:

现在,我们将使用查询扩展来扩大搜索范围,如下所示:

mysql> SELECT * FROM posts   
WHERE MATCH(title, descriptions)   
AGAINST('MySQL' WITH QUERY EXPANSION);  

执行该语句,我们将在使用查询扩展时在结果集中多得到一行。这里前三行是最相关的,其他行来自前三行派生的相关关键字。 

需要注意的是,盲查询扩展通过返回不相关的输出会显着增加噪声,因此建议仅在搜索短语很短时使用它。

热门文章

优秀文章