求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
要资料
 
 

mysql教程
MySQL快速学习入门
MySQL是什么
MySQL安装
MySQL示例数据库
MySQL导入示例数据库
MySQL基础教程
MySQL查询数据
MySQL WHERE语句
MySQL插入数据
MySQL更新表数据
MySQL删除表数据
MySQL创建与删除数据库
MySQL创建表
MySQL修改表结构
MySQL重命名表
MySQL数据类型
高级部分
MySQL技巧
MySQL存储过程
MySQL视图
MySQL触发器
MySQL管理
MySQL全文搜索
MySQL函数
应用程序连接
MySQL+Node.js连接和操作
Python+MySQL连接和操作
 
 

MySQL查询扩展
486 次浏览
 

在本教程中,您将了解到基于自动相关性反馈的MySQL查询扩展扩展搜索结果。

MySQL查询扩展简介

在某些情况下,用户希望根据他们拥有的知识来搜索信息。用户使用他们的知识来定义关键字来搜索信息,通常这些关键字太短。

为了帮助用户根据很短的关键字找到他们想要的内容,MySQL全文搜索引擎引入了一个称为查询扩展的概念。

查询扩展用于根据自动相关性反馈(或盲查询扩展)来扩大全文搜索的搜索结果。 从技术上讲,当使用查询扩展时,MySQL全文搜索引擎将执行以下步骤:

首先,MySQL全文搜索引擎会查找与搜索查询匹配的所有行。

其次,它检查搜索结果中的所有行,并找到相关词。

第三,它再次执行搜索,但是基于相关词而不是用户提供的原始关键词来查询匹配。

从应用程序的角度来看,当搜索结果太少时,可以使用查询扩展。再次执行搜索,但通过查询扩展为用户提供与他们正在查找的内容相关和相关的更多信息。

要使用查询扩展,请在AGAINST()函数中使用WITH QUERY EXPANSION搜索修饰符。以下说明使用WITH QUERY EXPANSION搜索修饰符查询的语法。

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

MySQL查询扩展示例

我们来看一下查询扩展的例子,看看它是如何工作的。

我们将使用products表的productName列来演示查询扩展功能。首先,启用此列的全文搜索索引。

ALTER TABLE products
ADD FULLTEXT(productName);

其次,搜索的产品名称包含1992的项,而不使用查询扩展。

SELECT productName
FROM products
WHERE MATCH(productName) AGAINST('1992');

如上所见,搜索结果其产品名称包含1992有2个产品。

第三,可以通过使用查询扩展来扩展搜索结果,如下所示:

SELECT productName
FROM products
WHERE MATCH(productName)
AGAINST('1992' WITH QUERY EXPANSION);

当我们使用查询扩展时,在搜索结果中得到了更多行。 前两行是最相关的,其他行来自前两列的相关关键字,例如:Ferrari。

请注意,通过返回不相关的结果,盲查询扩展会显着增加噪声。 强烈建议您仅在搜索到的关键字较短时才使用查询扩展。

在本教程中,当用户提供的关键字很短时,我们向您介绍了MySQL查询扩展,以扩大搜索结果。


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



486 次浏览
 捐助