mysql全文索引的查询扩展技术
2023-12-13 06:12:36
在执行全文搜索时,如果能够对查询进行扩展,则可以大大增强搜索的效果,尤其是在处理简短用户输入并依赖未明确表示的期望时。在这种情况下,“盲目查询扩展”以及它一般意义上的查询扩展方法就显得非常有用。
查询扩展的需求
试想用户经常会输入一个像“数据库”这样的单词,并期望不仅找到直接匹配的结果,还包括相关术语如“MySQL”、“Oracle”、“DB2”或者“RDBMS”。这些关联术语属于用户未在查询中具体说明的隐含知识。这正是查询扩展介入的地方,用以弥合字面搜索词汇和背后更广泛的搜索意图之间的差距。
自动相关性反馈
查询扩展自动相关性反馈,可以通过在搜索短语后添加WITH QUERY EXPANSION
或IN 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)
注意:由于自动相关性反馈查询往往会返回不相关的文档,会增加查询结果的干扰,因此建议仅当搜索短语较短时才使用它。
文章来源:https://blog.csdn.net/jkzyx123/article/details/134944104
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!