当前位置: 首页 > news >正文

【MySQL精通之路】全文搜索(3)-带查询扩展的全文搜索

博主PS:你可以把他理解为,查询猜测,膨胀查询,查询的第六感。

全文搜索支持查询扩展(尤其是其变体“盲查询扩展”)。

当搜索短语太短时,这通常很有用,这通常意味着用户依赖于全文搜索引擎所缺乏的隐含意义。

例如,用户搜索“数据库”可能意味着“MySQL”、“Oracle”、“DB2”和“RDBMS”都是与“数据库”匹配的短语,也应该返回。这是隐含的意义。

通过在搜索短语后面添加WITH QUERY EXPANSIONIN NATURAL LANGUAGE MODE WITH QUERY EXPANSION,可以启用盲查询扩展(也称为自动相关性反馈)。

它的工作原理是执行两次搜索,其中第二次搜索的搜索短语是与第一次搜索中的少数几个最相关的文档连接的原始搜索短语

因此,如果这些文档中有一个包含单词“databases”和单词“MySQL”,则第二次搜索会找到包含单词“MySQL”的文档,即使它们不包含单词“数据库”。以下示例显示了这种差异:

mysql> SELECT * FROM articlesWHERE MATCH (title,body)AGAINST ('database' IN NATURAL LANGUAGE MODE);
+----+-------------------+------------------------------------------+
| id | title             | body                                     |
+----+-------------------+------------------------------------------+
|  1 | MySQL Tutorial    | DBMS stands for DataBase ...             |
|  5 | MySQL vs. YourSQL | In the following database comparison ... |
+----+-------------------+------------------------------------------+
2 rows in set (0.00 sec)mysql> SELECT * FROM articlesWHERE MATCH (title,body)AGAINST ('database' WITH QUERY EXPANSION);
+----+-----------------------+------------------------------------------+
| id | title                 | body                                     |
+----+-----------------------+------------------------------------------+
|  5 | MySQL vs. YourSQL     | In the following database comparison ... |
|  1 | MySQL Tutorial        | DBMS stands for DataBase ...             |
|  3 | Optimizing MySQL      | In this tutorial we show ...             |
|  6 | MySQL Security        | When configured properly, MySQL ...      |
|  2 | How To Use MySQL Well | After you went through a ...             |
|  4 | 1001 MySQL Tricks     | 1. Never run mysqld as root. 2. ...      |
+----+-----------------------+------------------------------------------+
6 rows in set (0.00 sec)

另一个例子可能是搜索Georges Simenon关于Maigret的书籍,当用户不确定如何拼写“Maigret”时。在搜索“Megre和不情愿的证人”时,只找到了“Maigret和不情愿证人”,没有进行查询扩展。带有查询扩展的搜索会在第二遍中找到所有带有单词“Maigret”的书籍。

注意:

因为盲查询扩展往往会通过返回不相关的文档来显著增加噪声,所以只有在搜索短语较短时才使用它。

相关文章:

  • .DFS.
  • Docker安装MySQL的详细教程
  • 机器学习笔记——K近邻算法、手写数字识别
  • 【网络协议】【OSI】一次HTTP请求OSI工作过程详细解析
  • vue详解(4)
  • Android Gradle文件 一次通关
  • 全能集成开发平台Team·IDE
  • MySQL的SQL语句
  • SUPRA:无须额外训练,将Transformer变为高效RNN,推理速度倍增
  • 网络安全等级保护2.0(等保)是什么
  • InTouch历史报警、历史事件按时段查询,导出
  • springboot+vue+mybatis基于java web的公益网站的设计与实现+jsp+PPT+论文+讲解+售后
  • 2000.1-2022.06.17中国经济政策不确定性指数日度数据
  • spring boot3整合邮件服务实现邮件发送功能
  • DB2学习笔记--1
  • python3.6+scrapy+mysql 爬虫实战
  • C++类的相互关联
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Nodejs和JavaWeb协助开发
  • PHP变量
  • python 学习笔记 - Queue Pipes,进程间通讯
  • React组件设计模式(一)
  • vue-cli3搭建项目
  • vue-loader 源码解析系列之 selector
  • Zepto.js源码学习之二
  • 翻译--Thinking in React
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 设计模式 开闭原则
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 7行Python代码的人脸识别
  • Python 之网络式编程
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ‌[AI问答] Auto-sklearn‌ 与 scikit-learn 区别
  • #pragma 指令
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • $().each和$.each的区别
  • (11)MSP430F5529 定时器B
  • (4)STL算法之比较
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (力扣题库)跳跃游戏II(c++)
  • (十八)三元表达式和列表解析
  • (十六)Flask之蓝图
  • (十三)Maven插件解析运行机制
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转载)从 Java 代码到 Java 堆
  • (自适应手机端)响应式服装服饰外贸企业网站模板