# 12.10.5 全文限制
分区表不支持全文搜索。看第 24.6 节,“分区的限制和限制”.
全文搜索可用于大多数多字节字符集。唯一的例外是对于 Unicode,
utf8
可以使用字符集,但不能使用ucs2
字符集。虽然全文
索引ucs2
无法使用列,您可以执行在布尔模式下
搜索ucs2
没有此类索引的列。备注为
utf8
也适用于utf8mb4
, 和备注ucs2
也适用于utf16
,utf16le
, 和utf32
.汉语和日语等表意语言没有单词分隔符。因此,内置的全文解析器无法确定这些语言和其他此类语言中单词的开头和结尾.
提供支持中文、日文和韩文 (CJK) 的基于字符的 ngram 全文解析器和支持日文的基于词的 MeCab 解析器插件,以供与
InnoDB
和MyISAM
表。尽管支持在单个表中使用多个字符集,但一个表中的所有列
全文
index 必须使用相同的字符集和排序规则。这
匹配()
列列表必须与某些中的列列表完全匹配全文
表的索引定义,除非这匹配()
是在布尔模式下
在一个MyISAM
桌子。为了MyISAM
表,布尔模式搜索可以在非索引列上完成,尽管它们可能很慢。论据
反对()
必须是在查询评估期间保持不变的字符串值。例如,这排除了表格列,因为每行可能不同。从 MySQL 8.0.28 开始,参数
匹配()
不能使用汇总列。索引提示更受限制
全文
搜索比非全文
搜索。看第 8.9.4 节,“索引提示”.为了
InnoDB
, 所有 DML 操作 (插入
,更新
,删除
) 涉及具有全文索引的列在事务提交时处理。例如,对于一个插入
操作中,插入的字符串被标记化并分解为单个单词。然后在提交事务时将各个单词添加到全文索引表中。因此,全文搜索仅返回已提交的数据。'%' 字符不是全文搜索支持的通配符。