Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Full-Text Restrictions

14.9.5 全文限制

  • 全文搜索仅支持 InnoDBMyISAM 表。

  • 全文搜索不支持分区表。请参阅 第 26.6 章,“分区限制和限制”

  • 全文搜索可以与大多数多字节字符集一起使用。唯一的例外是 Unicode,utf8mb3utf8mb4 字符集可以使用,但不能使用 ucs2 字符集。虽然不能在 ucs2 列上创建 FULLTEXT 索引,但可以在没有该索引的 ucs2 列上执行 IN BOOLEAN MODE 搜索。

    utf8mb3 的备注也适用于 utf8mb4ucs2 的备注也适用于 utf16utf16leutf32

  • 像中文和日文这样的语言没有单词分隔符。因此,内置的全文解析器 无法确定这些语言中的单词开始和结束

    提供了一个基于字符的 ngram 全文解析器,支持中文、日文和韩文(CJK),以及一个基于单词的 MeCab 解析器插件,支持日文,用于 InnoDBMyISAM 表。

  • 虽然在单个表中使用多个字符集是支持的,但所有 FULLTEXT 索引中的列必须使用相同的字符集和排序规则。

  • MATCH() 列表必须与表中的某个 FULLTEXT 索引定义完全匹配,除非该 MATCH()MyISAM 表上是 IN BOOLEAN MODE。对于 MyISAM 表,可以在非索引列上执行布尔模式搜索,尽管这可能很慢。

  • AGAINST() 的参数必须是一个在查询评估期间保持不变的字符串值。这排除了,例如,表列,因为它可以在每行中不同。

    不能使用 rollup 列作为 MATCH() 的参数。

  • 索引提示对于 FULLTEXT 搜索比非 FULLTEXT 搜索更有限。请参阅 第 10.9.4 章,“索引提示”

  • 对于 InnoDB,所有 DML 操作(INSERTUPDATEDELETE)涉及全文索引列的操作将在事务提交时处理。例如,对于 INSERT 操作,插入的字符串将被标记化并分解成单个单词。然后,在事务提交时,将这些单词添加到全文索引表中。因此,全文搜索只能返回已提交的数据。

  • '%' 字符不是全文搜索支持的通配符。