mysql全文索引的查询扩展技术

在执行全文搜索时,如果能够对查询进行扩展,则可以大大增强搜索的效果,尤其是在处理简短用户输入并依赖未明确表示的期望时。在这种情况下,“盲目查询扩展”以及它一般意义上的查询扩展方法就显得非常有用。

查询扩展的需求

试想用户经常会输入一个像“数据库”这样的单词,并期望不仅找到直接匹配的结果,还包括相关术语如“MySQL”、“Oracle”、“DB2”或者“RDBMS”。这些关联术语属于用户未在查询中具体说明的隐含知识。这正是查询扩展介入的地方,用以弥合字面搜索词汇和背后更广泛的搜索意图之间的差距。

自动相关性反馈

查询扩展自动相关性反馈,可以通过在搜索短语后添加WITH QUERY EXPANSIONIN NATURAL LANGUAGE MODE WITH QUERY EXPANSION来启用。该技术涉及进行两次搜索,第二次搜索使用了修订后的搜索短语,其中融入了初次搜索中排名最高的几个文档中的相关术语。因此,如果在首次搜索中的一个高排名文档中出现了“数据库”和“MySQL”,那么第二次搜索将包括含有“MySQL”的文档,即使它们没有提及“数据库”。

示例:
mysql> SELECT * FROM articles
    WHERE 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 articles
    WHERE 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)

注意:由于自动相关性反馈查询往往会返回不相关的文档,会增加查询结果的干扰,因此建议仅当搜索短语较短时才使用它。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值