【发布时间】:2018-09-19 05:13:36
【问题描述】:
基本上,我有一个巨大的表(约 30m 条记录),其中一列有一个 fulltext 索引。
搜索查询如下所示:
... WHERE MATCH(body) AGAINST('+Hello +my*' IN BOOLEAN MODE) ...
我的存储引擎是 InnoDB,所以我们有一些限制:
- 最小字长为 3 个字符。
但是,文档是这样说的:
如果一个词是用截断运算符指定的,它不是 从布尔查询中剥离,即使它太短(如确定 来自 ft_min_word_len 设置)或停用词。发生这种情况是因为 该词不会被视为太短或停用词,而是作为前缀 必须以开头的单词的形式出现在文档中 前缀。假设 ft_min_word_len=4。
问题是: MySQL 在这种情况下如何使用 FT 索引? bae 这个词不应该出现在任何索引中,因为它不符合最小字长的要求。也许这样的查询会慢一些?
【问题讨论】:
标签: mysql innodb full-text-indexing