Navicat使用教程:在MySQL中执行全文搜索(第3部分)-布尔全文搜索

翻译|使用教程|编辑:莫成敏|2019-12-24 14:54:48.723|阅读 53 次

概述:在MySQL中执行全文搜索系列文章中,这是第3部分内容,继续第2部分描述全文搜索,并且介绍布尔全文搜索。

# 您正在找协同办公软件吗?点击这里站长给您推荐 #

相关链接:

Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。使用Navicat for MySQL可以同时连接到 MySQL 和 MariaDB。Navicat for MySQL提供了强大的前端功能,为数据库管理、开发和维护提供了直观的图形界面。对新手和专业人士来说,Navicat for MySQL都是管理和开发 MySQL 或 MariaDB的强大工具。

点击下载Navicat for MySQL正式版

欢迎阅读本系列有关MySQL中的全文本索引和搜索的第3部分。在第1部分中,我们了解了MySQL如何通过全文索引以及以下三种不同的全文搜索类型提供全文搜索功能:

  • 自然语言全文搜索

  • 布尔全文搜索

  • 查询扩展搜索

第2部分中,描述了如何在Navicat for MySQL中执行自然语言全文搜索。今天的文章将继续第2部分的内容,并且讨论下一种全文搜索:布尔全文搜索。

布尔模式描述

布尔模式比自然语言搜索更依赖于单词。这样,布尔全文搜索支持非常复杂的查询,其中包括布尔运算符。对于有经验的用户,布尔全文搜索提供了一种执行某些非常高级的搜索的方法。

运作方式如下:

要在布尔模式下执行全文搜索,请在AGAINST表达式中包含IN BOOLEAN MODE修饰符。回想一下,在之前的文章中,我们向Sakila示例数据库的电影表中添加了全文索引,以便可以在description字段中执行全文搜索。这是一个示例,该示例返回所有描述中包含“Butler”一词的电影:

Navicat使用教程:在MySQL中执行全文搜索(第3部分)-布尔全文搜索

一些更复杂的例子

上面的搜索非常简单,不需要全文本搜索。一旦开始执行诸如排除包含某些关键字的匹配之类的操作,它将变得更加有趣。例如,通过在单词“Documentary”之前加上排除布尔运算符(-),我们可以找到描述中包含非纪录片的“Butler”一词的电影:

Navicat使用教程:在MySQL中执行全文搜索(第3部分)-布尔全文搜索

这将返回61行,而之前的查询为73行。

多词匹配

我们还可以使用(+)包含运算符搜索描述与多个单词匹配的行。给单词加上前缀会告诉搜索引擎只匹配包含该单词的行。当存在多个单词(例如“+ Butler Hunter Waitress”)时,这将成为重要的区别。在这种情况下,将返回其描述包含单词“Butler”以及所有其他两个单词之一的所有行:

Navicat使用教程:在MySQL中执行全文搜索(第3部分)-布尔全文搜索

将上面的结果与由“Butler”和“Hunter”两个词加上(+)包括运算符的查询所产生的结果进行比较:

Navicat使用教程:在MySQL中执行全文搜索(第3部分)-布尔全文搜索

现在,匹配的行必须同时包含“Butler”和“Hunter”,但不一定包含“Waitress”。

相关性排名快速说明

对InnoDB的全文搜索排名与对MyISAM的排名不同,因为InnoDB全文搜索是基于Sphinx全文搜索引擎建模的,并且所使用的算法基于BM25和TF-IDF排名算法。

一些运算符会影响排名,因此我们可以进一步调整结果。例如,我们可以搜索包含单词“Butler”的行,但是如果包含单词“Hunter”或“Waitress”的行则排在下面:

Navicat使用教程:在MySQL中执行全文搜索(第3部分)-布尔全文搜索

结论

在今天的文章中,我们学习了如何使用Navicat for MySQL执行布尔全文搜索。有兴趣进一步了解Navicat for MySQL吗?您可以免费下载试用版,以进行评估!

相关内容推荐:

Navicat使用教程:在MySQL中执行全文搜索(第1部分)

Navicat使用教程:在MySQL中执行全文搜索(第2部分)


想要购买Navicat for MySQL正版授权,或了解更多产品信息请点击【咨询在线客服】

850×0.png



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:Navicat https://www.navicat.com/en/company/aboutus/blog/1299-perform-full-text-searches-in-mysql-part-3.html

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Navicat for MySQL

Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。

Navicat for PostgreSQL

Navicat for PostgreSQL是一套专为PostgreSQL设计的强大数据库管理及开发工具

Navicat for Oracle

Navicat for Oracle是一套超强的Oracle数据库系统管理工具,包括数据模型工具、数据或结构同步、导入或导出、和报表,令维护数据的进程更容易。

Navicat Premium

Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。

Navicat for SQL Server

Navicat for SQL Server 是一套专为 Mircosoft SQL Server设计的强大数据库管理及开发工具

Navicat for SQLite

Navicat for SQLite 是一套专为SQLite 设计的强大数据库管理及开发工具

Navicat Data Modeler

Navicat Data Modeler是一款数据建模图形化工具,为创建数据建模带来一种全新的体验。

Navicat Essentials

Navicat Essentials是一个小型版本的 Navicat,提供了数据库管理的基本和必需功能。

Navicat for MariaDB

Navicat for MariaDB 为 MariaDB 数据库管理提供了一个原生环境。你可以直观地设计数据库结构、运行 SQL 查询和脚本、管理 MariaDB 用户及其权限。

Navicat Report Viewer

Navicat Report Viewer 是一款Navicat Report Builder查看器,可以浏览由Navicat Report Builder创建设计的报表文件。

Navicat Cloud

Navicat Cloud是一款自动同步连线和查询的数据访问软件,确保您可以从任何设备访问数据。

Navicat iOS

Navicat iOS 是第一套专为 iOS 开发的完整数据库管理工具。——可在App Store中下载,只限 Navicat for MySQL 和 Navicat for PostgreSQL。

Navicat Monitor

安全、简单而且无代理的远程服务器监控工具。

在线
客服
在线
QQ
咨询
电话
177-4994-3557
购物车 反馈 返回
顶部
在线客服系统
live chat