- 在搜索短语后添加 WITH QUERY EXPANSION 或 IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION 可以启用盲查询扩展(也称为自动相关性反馈)。
- 在搜索短语太短时查询扩展模式的全文搜索通常很有用,用户依赖全文搜索引擎可以找到缺乏的隐含知识。例如,用户搜索“database”的相关内容可能是“MySQL”、“Oracle”、“DB2”和“RDBMS”,都是应该匹配“databases”的短语,也应该返回,这是隐含知识。
- 查询扩展搜索是自然语言搜索的修改。查询扩展模式执行两次搜索,第一次使用给定短语检索,第二次是结合第一次相关性比较高的行进行检索。第一次搜索将搜索返回的最相关行中的词添加到搜索字符串的文档中,然后再次进行搜索当第二次搜索时,结果集包括来自第一次搜索的几个最相关的文档,最后返回第二次搜索的结果
- 如果其中一个文档包含单词“databases”和单词“MySQL”,则第二次搜索会找到包含单词“MySQL”的文档,即使它们不包含单词“database”。以下示例显示了这种差异:
示例
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)
示例
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://dev.mysql.com/doc/refman/8.0/en/fulltext-query-expansion.html>