• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 具有查询扩展的全文本搜索

    全文搜索支持查询扩展(尤其是其变体“盲查询扩展”)。当搜索短语太短时,这通常很有用,这通常意味着用户依赖于全文搜索引擎所缺乏的隐含知识。例如,搜索“数据库”的用户可能实际上意味着“ MySQL ”,“ Oracle ”,“ DB2 ”和“ RDBMS ”都是应与“数据库”匹配的短语并且也应该退货。这就是隐含的知识。

    通过添加WITH QUERY EXPANSIONIN NATURAL LANGUAGE MODE WITH QUERY EXPANSION跟随搜索短语,可以启用盲查询扩展(也称为自动相关性反馈)。它通过执行两次搜索来工作,其中第二次搜索的搜索短语是原始搜索短语,并与来自第一次搜索的少数几个最相关的文档连接在一起。因此,如果这些文档之一包含单词“ database ”和单词“ MySQL ”,则第二个搜索将查找包含单词“ MySQL ”的文档,即使它们不包含单词“ database ”。以下示例显示了这种差异:

    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 will 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)
    

    另一个示例是当用户不确定如何拼写“ Maigret ”时,搜索Georges Simenon的有关Maigret的书。搜索“ Megre和不情愿的证人”仅找到“ Maigret和不情愿的证人”,而没有查询扩展。带有查询扩展的搜索会在第二遍查找中找到所有带有单词“ Maigret ”的图书。

    注意

    由于盲查询扩展往往会通过返回不相关的文档而显着增加噪声,因此仅在搜索短语较短时才使用它。