分割資料表不支援全文檢索。請參閱第 26.6 節,「分割的限制與約束」。
大部分多位元組字元集都支援全文檢索。例外情況是,對於 Unicode,可以使用
utf8mb3或utf8mb4字元集,但不能使用ucs2字元集。雖然無法使用ucs2資料行上的FULLTEXT索引,但可以在沒有這類索引的ucs2資料行上執行IN BOOLEAN MODE搜尋。utf8mb3的備註也適用於utf8mb4,而ucs2的備註也適用於utf16、utf16le和utf32。中文和日文等表意語言沒有單字分隔符。因此,內建的全文檢索剖析器 無法判斷這些語言以及其他此類語言中單字的開頭和結尾位置。
提供以字元為基礎的 ngram 全文檢索剖析器 (支援中文、日文和韓文 (CJK)),以及以單字為基礎的 MeCab 剖析器外掛程式 (支援日文),以便用於
InnoDB和MyISAM資料表。雖然支援在單一資料表內使用多個字元集,但
FULLTEXT索引中的所有資料行都必須使用相同的字元集和排序規則。除非
MATCH()是在MyISAM資料表上以IN BOOLEAN MODE執行,否則MATCH()資料行清單必須與資料表的某些FULLTEXT索引定義中的資料行清單完全相符。對於MyISAM資料表,可以在未建立索引的資料行上進行布林模式搜尋,但速度可能會很慢。AGAINST()的引數必須是在查詢評估期間保持不變的字串值。例如,這排除資料表資料行,因為每個資料列的值可能會有所不同。MATCH()的引數無法使用彙總資料行。對於
FULLTEXT搜尋,索引提示的限制比非FULLTEXT搜尋更多。請參閱第 10.9.4 節,「索引提示」。對於
InnoDB,所有涉及具有全文索引的資料行的 DML 操作 (INSERT、UPDATE、DELETE) 會在交易認可時間進行處理。例如,對於INSERT操作,插入的字串會被權杖化,並分解為個別單字。然後,當交易認可時,會將個別單字新增至全文索引資料表。因此,全文檢索只會傳回已認可的資料。「%」字元不是全文檢索支援的萬用字元。