Documentation Home

12.10.5 全文限制

  • InnoDB仅支持和 MyISAM表 的全文搜索 。

  • 分区表不支持全文搜索。请参阅第 19.6 节,“分区的约束和限制”

  • 全文搜索可用于大多数多字节字符集。例外的是,对于 Unicode, utf8可以使用字符集,但不能使用ucs2字符集。虽然 不能使用列上的FULLTEXT索引 ,但您可以在没有此类索引 的列上执行搜索 。ucs2IN BOOLEAN MODEucs2

    的备注utf8也适用于 utf8mb4, 的备注 ucs2也适用于 utf16utf16leutf32

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

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

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

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

  • FULLTEXT 与非搜索相比, 索引提示对搜索的限制更大FULLTEXT。请参阅第 8.9.3 节,“索引提示”

  • 对于,所有涉及具有全文索引的列的InnoDBDML 操作(INSERTUPDATE、 )都在事务提交时处理。DELETE例如,对于INSERT 操作,插入的字符串被标记化并分解为单个单词。当提交事务时,各个单词随后被添加到全文索引表中。因此,全文搜索只返回提交的数据。

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