布尔模式下的MySql FullTextSearch返回的返回结果短于ft_min_word_len

时间:2018-06-16 12:52:17

标签: mysql full-text-search full-text-indexing

我在布尔模式下使用Mysql FTS查询

SELECT org.org_name FROM org 
WHERE MATCH org.org_name AGAINST ('an*' in BOOLEAN MODE);

这给了我以下结果

+--------------------------+
| org_name                 |
+--------------------------+
| Chairs and Table Company |
| and                      |
+--------------------------+
2 rows in set (0.00 sec)

但是,我的理解是忽略了所有小于ft_min_word_len的结果,在我的情况下,ft_min_word_len为4,如下面的查询结果所示(显示变量,如'ft%';)

+--------------------------+----------------+
| Variable_name            | Value          |
+--------------------------+----------------+
| ft_boolean_syntax        | + -><()~*:""&| |
| ft_max_word_len          | 84             |
| ft_min_word_len          | 4              |
| ft_query_expansion_limit | 20             |
| ft_stopword_file         | (built-in)     |
+--------------------------+----------------+

我想知道如果我的理解是正确的,为什么会返回像''这样的结果。感谢。

1 个答案:

答案 0 :(得分:2)

InnoDB和MyISAM表中都有FULLTEXT搜索。但是,例如,他们有不同的变量集来控制它们。

MyISAM                   InnoDB
ft_min_word_len     innodb_ft_min_token_size
ft_max_word_len     innodb_ft_max_token_size

SHOW TABLE STATUS WHERE Name = 'tablename'向您显示表格的引擎。

This may be helpful reading