暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的函数和运算符 - 全文搜索 - 全文搜索的限制

数据库杂货铺 2021-07-03
500
全文搜索的限制
 
● 只支持 InnoDB MyISAM 表的全文搜索。
 
● 分区表不支持全文搜索。
 
● 全文搜索可以用于大多数多字节字符集。例外的是,对于 Unicode, utf8 字符集可以使用,但 ucs2 字符集不行。虽然不能使用 ucs2 列上的 FULLTEXT 索引,但是可以在 ucs2 列上没有此类索引的情况下执行 IN BOOLEAN MODE 搜索。
 
对于 utf8 的评论也适用于 utf8mb4, 对于 ucs2 的评论也适用于 utf16utf16le utf32
 
● 象中文和日文这样的表意语言没有字分隔符。因此,内置的全文解析器不能确定这些语言和其他此类语言中的单词从哪里开始和结束。
 
对于 InnoDB MyISAM 表,提供了基于字符的 ngram 全文解析器(CJK),支持中文、日文和韩文的文字解析,以及支持日文的基于单词的 MeCab 解析器插件。
 
● 虽然支持在一个表中使用多种字符集,但是 FULLTEXT 索引中的所有列必须使用相同的字符集和排序规则。
 
● MATCH() 参数列的列表必须与表的某些 FULLTEXT 索引定义中的列的列表完全匹配,除非这个 MATCH() MyISAM 表使用 IN BOOLEAN MODE。对于 MyISAM 表,可以在非索引列上执行布尔模式搜索,尽管它们可能会比较慢。
 
● AGAINST() 的参数必须是在查询计算期间不变的字符串值。例如,这排除了表的列,因为每一行的列值可能不同。
 
● 与非 FULLTEXT 搜索相比,FULLTEXT 搜索的索引提示更加有限。
 
● 对于 InnoDB,所有涉及带全文索引列的 DML 操作(INSERTUPDATEDELETE)都是在事务提交时处理的。例如,对于 INSERT 操作,插入的字符串被标记并分解为单个单词。然后在提交事务时将单个单词添加到全文索引表中。因此,全文搜索只返回已提交的数据。
 
● 字符 '%' 不是全文搜索所支持的通配符。
 
 
官方网址:
https://dev.mysql.com/doc/refman/8.0/en/fulltext-restrictions.html
文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论