赞
踩
全文搜索仅支持InnoDB和MyISAM表。
分区表不支持全文搜索。参见“分区的限制和限制”。
全文搜索可用于大多数多字节字符集。
例外的是,对于Unicode,可以使用utf8mb3或utf8mb4字符集,但不能使用ucs2字符集。
尽管不能对ucs2列使用FULLTEXT索引,但可以对没有此类索引的ucs2列执行IN BOOLEAN MODE搜索。
utf8mb3的备注也适用于utf8mb4,ucs2的备注也应用于utf16、utf16le和utf32。
表意文字语言,如汉语和日语,没有单词分隔符。
因此,内置的全文解析器无法确定这些语言和其他此类语言中的单词的开头和结尾。
提供了一个支持中文、日语和韩语(CJK)的基于字符的ngram全文解析器,以及一个支持日语的基于单词的MeCab解析器插件,用于InnoDB和MyISAM表。
尽管支持在单个表中使用多个字符集,但FULLTEXT索引中的所有列都必须使用相同的字符集和排序规则。
MATCH()列列表必须与表的某些FULLTEXT索引定义中的列列表完全匹配,除非此MATCH(在MyISAM表上处于BOOLEAN模式。对于MyISAM表,可以在无索引列上进行布尔模式搜索,尽管搜索速度可能较慢。
AGINST()的参数必须是在查询求值期间为常量的字符串值。例如,这排除了表列,因为每行的列可能不同。
从MySQL 8.0.28开始,MATCH()的参数不能使用汇总列。
与非FULLTEXT搜索相比,FULLTEXT检索的索引提示更受限制。参见“索引提示”。
对于InnoDB,所有涉及具有全文索引的列的DML操作(INSERT、UPDATE、DELETE)都在事务提交时处理。例如,对于INSERT操作,插入的字符串被标记化并分解为单个单词。然后,当事务被提交时,各个单词被添加到全文索引表中。因此,全文搜索只返回提交的数据。
“%”字符不是全文搜索支持的通配符。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。