MariaDB Fulltext Search,不支持子字符串搜索?

MariaDB Fulltext Search, does not support searches of substrings?

根据文档 https://mariadb.com/kb/en/library/fulltext-index-overview/ 排除的结果是部分单词。当我们用下面的SQL查询

在短语'My cat is brown'中搜索'rown'时,是否意味着
SELECT mytable.mycolumn FROM mytable
WHERE MATCH (mytable.mycolumn) AGAINST('rown*' IN BOOLEAN MODE); 

结果是0行?

这是正确的还是我遗漏了什么?我们正在使用 MariaDB 版本 10.1.26 和 InnoDB Engine

没有

FULLTEXT 索引有几个限制。 'rown' 搜索 'rown''rowns''rowning' 和其他一些英语变体。但是它不会找到 brown.

唯一允许的通配符是把它贴在最后。例如,'var*' 会找到 'variations'.

一个词前面加一个+就变成了'required'。因此,AGAINST("+red +cow") 将找到包含这两个词的行(散布在文本中的任何位置),但不会找到仅包含一个词的行。

所以,你问 "why"。答案是 (1) 性能和 (2) 效用。如果通配符可以在开头,FULLTEXT 会减慢很多。 FULLTEXT 的主要用途是查找 "words",而不是单词的一部分。所以,你问为什么允许尾随后缀。因为实施起来非常便宜。也就是说,成本对于低效用来说足够低。