| 方案 | 原理 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|---|
| LIKE %kw% | 全表掃描 | 簡單、兼容性好 | 效率極低、不走索引 | 小表、低頻 |
| MySQL FULLTEXT | 倒排索引+分詞 | 原生支持、較 LIKE 快 | 需分詞、維護額外字段、MyISAM/5.6+ InnoDB | 中小數據量、不想引入外部組件 |
| Sphinx/Coreseek/xunsearch | 專用搜索引擎 | 高效、內置中文分詞、功能豐富 | 架構複雜、需同步數據、運維成本高 | 大數據量、高併發、豐富查詢需求 |
ft_min_word_len=1(默認 4,中文必改),修改 my.ini 後重啟並 REPAIR TABLE 重建索引MATCH(col) AGAINST('keyword' IN BOOLEAN MODE)MATCH(title,content) AGAINST('kw') 參數須與索引定義一致IN BOOLEAN MODE 繞過+ 必含、- 排除、"phrase" 精確短語應用寫入 DB → 定時/實時同步 → Sphinx/Coreseek → 搜索 API 返回 ID → DB 回查詳情
同步策略:增量索引 + 主索引輪轉,或使用 Canal 監聽 binlog 實時同步。