首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 全文搜索布林模式完整語法與操作符詳解

     編輯:MySQL 資料庫相關知識

啟用布林模式

SELECT * FROM articles 
WHERE MATCH (title, body) AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);

布林模式特點

  • 無 50% 門檻限制
  • 不按相關性排序(結果順序不固定)
  • 可無全文索引工作(極慢,全表掃描)
  • 受 ft_min_word_len、ft_max_word_len、停用詞影響

操作符完整對照表

操作符名稱功能範例
+必須包含該詞必須出現在結果每行+MySQL
-必須排除該詞絕不可出現-YourSQL
(無)可選預設行為,有則相關性高MySQL
>提高權重增強該詞對相關性影響>turnover
<降低權重減弱該詞對相關性影響<strudel
()分組子表達式分組,可巢狀+(>turnover
~否定權重降噪,含該詞行排名靠後但不排除~noise
*截斷/後綴匹配該詞開頭所有詞(須置於詞尾)apple*
" "精確短語匹配完整短語,順序一致,標點可忽略"some words"

實用範例解析

查詢字串語義
'apple banana'包含 apple 或 banana 至少一個
'+apple +juice'同時包含 apple 和 juice
'+apple Macintosh'必含 apple,含 Macintosh 者排名更高
'+apple -Macintosh'必含 apple,排除含 Macintosh
'+apple +(>turnover必含 apple,且含 turnover 或 strudel;含 turnover 權重更高
'apple*'包含 apple、apples、applesauce、applet 等
'"some words"'精確包含 "some words" 短語

進階技巧

  • 組合使用:+title:mysql +body:tutorial(MySQL 5.1+ 支援欄位限定)
  • 動態生成:應用層根據使用者輸入組裝布林查詢字串
  • 效能:大量資料務必建立 FULLTEXT 索引,否則全表掃描不可接受
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved