文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  全文檢索限制

14.9.5 全文檢索限制

  • InnoDBMyISAM 資料表支援全文檢索。

  • 分割資料表不支援全文檢索。請參閱第 26.6 節,「分割的限制與約束」

  • 大部分多位元組字元集都支援全文檢索。例外情況是,對於 Unicode,可以使用 utf8mb3utf8mb4 字元集,但不能使用 ucs2 字元集。雖然無法使用 ucs2 資料行上的 FULLTEXT 索引,但可以在沒有這類索引的 ucs2 資料行上執行 IN BOOLEAN MODE 搜尋。

    utf8mb3 的備註也適用於 utf8mb4,而 ucs2 的備註也適用於 utf16utf16leutf32

  • 中文和日文等表意語言沒有單字分隔符。因此,內建的全文檢索剖析器 無法判斷這些語言以及其他此類語言中單字的開頭和結尾位置

    提供以字元為基礎的 ngram 全文檢索剖析器 (支援中文、日文和韓文 (CJK)),以及以單字為基礎的 MeCab 剖析器外掛程式 (支援日文),以便用於 InnoDBMyISAM 資料表。

  • 雖然支援在單一資料表內使用多個字元集,但 FULLTEXT 索引中的所有資料行都必須使用相同的字元集和排序規則。

  • 除非 MATCH() 是在 MyISAM 資料表上以 IN BOOLEAN MODE 執行,否則 MATCH() 資料行清單必須與資料表的某些 FULLTEXT 索引定義中的資料行清單完全相符。對於 MyISAM 資料表,可以在未建立索引的資料行上進行布林模式搜尋,但速度可能會很慢。

  • AGAINST() 的引數必須是在查詢評估期間保持不變的字串值。例如,這排除資料表資料行,因為每個資料列的值可能會有所不同。

    MATCH() 的引數無法使用彙總資料行。

  • 對於 FULLTEXT 搜尋,索引提示的限制比非 FULLTEXT 搜尋更多。請參閱第 10.9.4 節,「索引提示」

  • 對於 InnoDB,所有涉及具有全文索引的資料行的 DML 操作 (INSERTUPDATEDELETE) 會在交易認可時間進行處理。例如,對於 INSERT 操作,插入的字串會被權杖化,並分解為個別單字。然後,當交易認可時,會將個別單字新增至全文索引資料表。因此,全文檢索只會傳回已認可的資料。

  • 「%」字元不是全文檢索支援的萬用字元。