我在布尔模式下使用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) |
+--------------------------+----------------+
我想知道如果我的理解是正确的,为什么会返回像'和'这样的结果。感谢。
答案 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'
向您显示表格的引擎。