[英]MySQL FullText search returns 0 if multiple row matches
如果我在查询中传递唯一值,则Match
/ Against
返回true;如果我传递值(存在于多行中),则Match
返回值为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 )
MATCH(b.branch_name) AGAINST ('Men' IN NATURAL LANGUAGE MODE )
返回的所有值都MATCH(b.branch_name) AGAINST ('Women' IN NATURAL LANGUAGE MODE )
0 'beauty'
谁能帮我哪里错了?
有一个名为ft_min_word_len
的系统变量,其默认值为4(请参见此处 )。
这意味着少于四个字母的单词将被忽略-不包括在索引中。 索引中没有条目; 没有返回任何行。
重置该值,然后重建索引,以使“ men”位于索引中。 然后您的查询将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.