IT技術互動交流平臺

關于MATCH AGAINST模糊搜索的詳細操作教程

作者:whl  來源:網絡整理  發布日期:2018-11-16 08:33:00

  相信很多電腦用戶對于mysql并不是很熟悉,有些操作都不知道該如何進行。今天將給大家講解一下關于MATCH AGAINST模糊搜索的詳細操作教程,小編個人認為這個教程還是非常具有學習價值的,很多時候有了這個方法操作起來省力很多。

  mysql 4.x以上提供了全文檢索支持 MATCH ……AGAINST 模式(不區分大小寫)

  建立全文索引的表的存儲引擎類型必須為MyISAM

  問題是match against對中文模糊搜索支持不是太好

  新建一個utf8 MyISAM類型的表并建立一個全文索引 :

全文索引

  其中FULLTEXT(title, body) 給title和body這兩列建立全文索引,之后檢索的時候注意必須同時指定這兩列。

  給這個表添加點測試數據

添加點測試數據

  全文檢索測試

全文檢索測試

  注意 MATCH (title,body) 里面的值必須是前面建立全文索引的兩個字段不能少。

  mysql 默認支持全文檢索的字符長度是4,可以用SHOW VARIABLES LIKE 'ft_min_word_len' 來查看指定的字符長度,也可以在mysql配置文件my.ini 更改最小字符長度,方法是在my.ini 增加一行 比如:ft_min_word_len = 2,改完后重啟mysql即可。

  另外,MySQL還會計算一個詞的權值,以決定是否出現在結果集中,具體如下:

  mysql在集和查詢中的對每個合適的詞都會先計算它們的權重,一個出現在多個文檔中的詞將有較低的權重(可能甚至有一個零權重),因為在這個特定的集中,它有較低的語義值。否則,如果詞是較少的,它將得到一個較高的權重,mysql默認的閥值是50%,上面‘you'在每個文檔都出現,因此是100%,只有低于50%的才會出現在結果集中。

  全文檢索語法

全文檢索語法  

  表示AND,即必須包含。- 表示NOT,即不包含。

 表示AND

  apple和banana之間是空格,空格表示OR,即至少包含apple、banana中的一個。

  包含apple、banana

  必須包含apple,但是如果同時也包含banana則會獲得更高的權重。

獲得更高的權重

  ~ 是我們熟悉的異或運算符。返回的記錄必須包含apple,但是如果同時也包含banana會降低權重。 但是它沒有 +apple -banana 嚴格,因為后者如果包含banana壓根就不返回。

包含banana壓根就不返回

  返回同時包含apple和banana或者同時包含apple和orange的記錄。但是同時包含apple和banana的記錄的權重高于同時包含apple和orange的記錄。

  關于mysql里MATCH AGAINST的模糊搜索今天就給大家介紹到這里了,小編感覺還是非常簡單易操作的,大家不要擔心因為太難操作會失敗而不敢下手。如果大家對上面的內容還有什么疑惑的話可以給小編留言,大家一起交流解決。

 

延伸閱讀:

Tag標簽: MATCH AGAINST   模糊搜索  
  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
香港最快开奖现场直播结果