通常用在查询的关键词太短,用户需要隐含知识进行扩展。例如,查单词database时,用户可能还希望不仅仅包含database的文档,可能还指包含mysql、oracle、db2等单词。这时就需要查询扩展。
使用"with query expansion"或"in natural language mode with query expansion"关键语法就可以开启自动相关性反馈。共有两个阶段:
1.根据检索的单词进行全文检索
2.根据第一阶段产生的分词在进行一次全文检索,找出与第一阶段相关性比较高的单词
mysql> SELECT * -> FROM articles -> WHERE -> MATCH (title , body) AGAINST ('database' IN NATURAL LANGUAGE MODE); +----+-------------------+------------------------------------------+ | id | title | body | +----+-------------------+------------------------------------------+ | 5 | MySQL vs. YourSQL | In the following database comparison ... | | 7 | MySQL Tutorial | DBMS stands for DataBase ... | +----+-------------------+------------------------------------------+ 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 ... | | 7 | MySQL Tutorial | DBMS stands for DataBase ... | | 8 | Oracle Tutorial | DBMS stands for you to test DB ... | | 6 | MySQL Security | When configured properly, MySQL ... | | 3 | Optimizing MySQL | In this tutorial we will show ... | | 2 | How To Use MySQL Well | After you went through a ... | | 4 | 1001 MySQL Tricks | 1. Never run mysqld as root. 2. ... | | 11 | Python Tutorial | pthon is ab1 bc2 cd3 de4 ef5 fg6 gh7 hi8 ij9 jk10 kl11 lm12 mn13 | | 12 | BOOLEN Tutorial | word1,word2,word3,word4,word5,word6,word7,word8,word9,word10 | +----+-----------------------+------------------------------------------------------------------+ 9 rows in set (0.00 sec) mysql>
由于查询扩展可能带来许多非相关性的查询,建议谨慎使用!