当前位置:   article > 正文

【MySQL精通之路】全文搜索(5)-限制

【MySQL精通之路】全文搜索(5)-限制

 主博客:
【MySQL精通之路】全文搜索功能-CSDN博客


全文搜索仅支持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操作,插入的字符串被标记化并分解为单个单词。然后,当事务被提交时,各个单词被添加到全文索引表中。因此,全文搜索只返回提交的数据。

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/646625
推荐阅读
相关标签
  

闽ICP备14008679号