12.9.5 Full-Text 限制

  • Full-text 搜索仅支持InnoDBMyISAM 数据表。

  • 分区表不支持 Full-text 次搜索。见第 22.6 节,“分区的限制和限制”

  • Full-text 搜索可以与大多数多字节字符集一起使用。 exception 是对于 Unicode,可以使用utf8字符集,但不能使用ucs2字符集。虽然无法使用ucs2列上的FULLTEXT索引,但您可以在没有此类索引的ucs2列上执行IN BOOLEAN MODE搜索。

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

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

在 MySQL 5.7.6 中,提供了支持中文,日文和韩文(CJK)的 character-based ngram full-text 解析器,以及支持日语的 word-based MeCab 解析器插件,用于InnoDBMySIAM表。

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

  • MATCH()列列表必须_ 匹配 table 的某些FULLTEXT索引定义中的列列表,除非对于MyISAM表,boolean-mode 搜索可以在非索引列上完成,尽管它们可能很慢。

  • AGAINST()的参数必须是 string value,它在查询 evaluation 期间是常量。例如,这排除了 table 列,因为每行可能不同。

  • 索引提示对于FULLTEXT搜索比对非FULLTEXT搜索更有限。见第 8.9.4 节,“索引提示”

  • 对于InnoDB,涉及具有 full-text 索引的列的所有 DML 操作(插入UPDATE删除)都在 transaction commit time 处理。对于 example,对于INSERT操作,插入的 string 被标记化并分解为单个单词。然后,在提交 transaction 时,将单个单词添加到 full-text 索引表。因此,full-text 仅搜索 return 提交的数据。

  • 对于 full-text 搜索,'%'字符不是受支持的通配符。

Updated at: 7 months ago
Full-Text 停用词Table of contentFine-Tuning MySQL Full-Text 搜索