如果多行匹配,MySQL FullText搜索返回0

时间:2015-12-07 12:55:17

标签: mysql full-text-search

Match / Against如果我在查询中传递唯一值则返回true,如果我传递值,则返回0,该值存在于多行中。

SELECT MATCH(b.branch_name) 
AGAINST ('Men' IN NATURAL LANGUAGE MODE ), branch_name 
FROM `branch` AS `b` WHERE 1

Table Data:
id   | branch_name
--------------------
1    | Men 
2    | Beauty
3    | Women

如果我通过MATCH(b.branch_name) AGAINST ('Men' IN NATURAL LANGUAGE MODE )为所有行返回0, 如果我通过MATCH(b.branch_name) AGAINST ('Women' IN NATURAL LANGUAGE MODE )返回> 0 'beauty'

的值相同

任何人都可以帮助我,我错了吗?

1 个答案:

答案 0 :(得分:2)

有一个名为ft_min_word_len的系统变量,其默认值为4(参见here)。

这意味着忽略少于四个字母的单词 - 不包含在索引中。索引中没有条目;没有返回任何行。

重置该值,然后重建索引,以便“men”将在索引中。然后你的查询就可以了。