文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9MB
PDF (A4) - 40.0MB
手册页 (TGZ) - 258.5KB
手册页 (Zip) - 365.5KB
信息 (Gzip) - 4.0MB
信息 (Zip) - 4.0MB


MySQL 8.4 参考手册  /  ...  /  全文限制

14.9.5 全文限制

  • InnoDBMyISAM 表支持全文搜索。

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

  • 大多数多字节字符集均可使用全文搜索。但 Unicode 除外,可以使用 utf8mb3utf8mb4 字符集,但不能使用 ucs2 字符集。尽管不能使用 ucs2 列上的 FULLTEXT 索引,但可以在没有此类索引的 ucs2 列上执行 IN BOOLEAN MODE 搜索。

    utf8mb3 的说明也适用于 utf8mb4ucs2 的说明也适用于 utf16utf16leutf32

  • 中文和日语等表意语言没有单词分隔符。因此,内置的全文解析器 无法确定单词在这些语言和其他此类语言中的起始和结束位置

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

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

  • MATCH() 列列表必须与表中某些 FULLTEXT 索引定义中的列列表完全匹配,除非此 MATCH()MyISAM 表上为 IN BOOLEAN MODE。对于 MyISAM 表,可以在未编制索引的列上执行布尔模式搜索,但速度可能会很慢。

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

    MATCH() 的参数不能使用汇总列。

  • 与非 FULLTEXT 搜索相比,FULLTEXT 搜索的索引提示更有限。请参阅 第 10.9.4 节 “索引提示”

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

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