首页 > 数据库 >MySQL全文搜索的高级特性:查询扩展(Query Expansion)

MySQL全文搜索的高级特性:查询扩展(Query Expansion)

时间:2023-08-11 15:23:36浏览次数:54  
标签:结果 扩展 Expansion 查询 搜索 MySQL Query 全文

查询扩展(Query Expansion)是全文搜索的一个高级特性,尤其对于某些搜索需求来说非常有用。它是基于原始查询返回的结果来进一步扩展并改进搜索结果的过程。

当用户执行全文搜索查询时,可能会遇到以下情况:

  1. 查询结果太少或没有。
  2. 由于用户不熟悉正确的术语或关键字,查询不准确。

在这些情况下,查询扩展可以帮助改进搜索结果。

工作原理

  1. 首次查询:首先,对用户的原始查询进行正常的全文搜索。
  2. 找到相关词:根据这次查询的结果,数据库会找出与已匹配文档相关的词汇。
  3. 二次查询:使用原始查询中的词汇和新找到的相关词汇进行第二次搜索。
  4. 返回结果:最后,将扩展后的查询的结果返回给用户。

MySQL中的查询扩展

示例表结构可以参考《MySQL全文索引的布尔搜索使用介绍》这篇文章里的。

在MySQL中,你可以使用WITH QUERY EXPANSION来启用查询扩展模式:

 
SELECT * FROM articles WHERE MATCH(content) AGAINST('apple' WITH QUERY EXPANSION);

以上查询首先搜索包含“apple”的文档。然后,它会找出与这些文档相关的其他词汇,并执行第二次搜索来返回更多的可能相关的结果。

注意事项

  1. 性能考虑:由于查询扩展实际上涉及至少两次搜索,因此可能比常规的全文搜索慢。
  2. 结果的广泛性:查询扩展可能会返回更广泛的结果,其中一些可能不如原始查询结果相关。但在某些情况下,这是可取的,特别是当原始查询返回的结果太少或不相关时。

总的来说,查询扩展是一个强大的工具,它可以提高搜索的灵活性和相关性,尤其是在面对模糊或不确定的用户查询时。

标签:结果,扩展,Expansion,查询,搜索,MySQL,Query,全文
From: https://www.cnblogs.com/shamo89/p/17623054.html

相关文章

  • 【Java 初阶】 Mysql 增删改查
    ......
  • SuiteQL Query Tool(from Tim)
    背景使用了3年时间后,我表示非常感激;不得不来赞美一下下。我很喜欢Tim兄分享的SuiteQLQueryTool,它用AJAX的方式提交query无需刷新页面动态加载query结果,另外更加人性化的数据库字段搜索,索引与关联等。总体感觉:非常简洁,直观,方便,快速源地址https://timdietrich.me/netsuite......
  • MySQL 1130错误原因及解决方案
    错误:ERROR1130:Host‘http://xxx.xxx.xxx.xxx’isnotallowedtoconnecttothisMySQLserve错误1130:主机xxx.xxx.xxx.xxx”不允许连接到thismysql服务原因分析被连接的数据不允许使用主机http://xxx.xxx.xxx.xxx访问,系统数据库mysql中user表中的host是localhost,只允许......
  • ​​​软件开发入门教程网之​​MySQL LIKE 子句​
    我们知道在MySQL中使用SQLSELECT命令来读取数据,同时我们可以在SELECT语句中使用WHERE子句来获取指定的记录。WHERE子句中可以使用等号=来设定获取数据的条件,如"kxdang_author='RUNOOB.COM'"。但是有时候我们需要获取kxdang_author字段含有"COM"字符的所有记录,......
  • ​​​软件开发入门教程网之​​MySQL 连接的使用​
    在前几章节中,我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用MySQL的JOIN在两个或多个表中查询数据。你可以在SELECT,UPDATE和DELETE语句中使用Mysql的JOIN来联合多表查询。JO......
  • mysql Error 1264: Out of range value for column 'balance' at row 1
    报错原因:值超出列的范围可能原因:原因1:值超出其可输入的范围。解决方法:设置的为INT,可以把列的值改为BIGINT,或者改成其他数据类型。原因2:新版本的MySQL对字段的严格检查。解决方法:修改my.ini,将sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"......
  • pg、mysql_fdw、postgis安装
    pgwgethttps://ftp.postgresql.org/pub/source/v14.4/postgresql-14.4.tar.gz--no-check-certificateyuminstall-ygccxml2readlinedev*zlibperldev*pythondev*bisonflexsyuminstallreadline-develtarxfpostgresql-14.4.tar.gz./configure--prefix=/usr/loc......
  • MySQL MGR 搭建过程常见问题
    故障1[ERROR]Plugingroup_replicationreported:'Thismemberhasmoreexecutedtransactionsthanthosepresentinthegroup.Localtransactions:bb874065-c485-11e8-8b52-000c2934472e:1>Grouptransactions:3db33b36-0e51-409f-a61d-c99756e90155:1-11&......
  • jQuery隐式迭代
      ......
  • RISC-V公测平台发布 · 使用YCSB测试SG2042上的MySQL性能
    实验介绍:YCSB(全称为Yahoo!CloudServingBenchmark),该性能测试工具由Java语言编写(在之前的MC文章中也提到过这个,如果没看过的读者可以去看看之前MC那一期),主要用于云端或者服务器端的数据库性能测试工具,其内部涵盖了常见的NoSQL数据库产品,如Cassandra、MongoDB、HBase、Redis等等......