我遇到了一个奇怪的mysql行为。 如果我尝试使用全文查询sam * word进行搜索,我就没有结果了。
实施例。表公司
id || name 1 || Company name 2 || Same Company name
如果我做
`SELECT name FROM companies WHERE MATCH name AGAINST ('+Company*' IN BOOLEAN MODE)`
如果我使用
,它会起作用`SELECT name FROM companies WHERE MATCH name AGAINST ('+Sam*' IN BOOLEAN MODE)`
或
`SELECT name FROM companies WHERE MATCH name AGAINST ('+Same' IN BOOLEAN MODE)`
我没有结果!
你对这个问题有任何想法吗?
PS。如果我使用+ Sa *而不是+ Sam *,它可以使用
答案 0 :(得分:0)
您必须更改配置值ft_min_word_len
(全文最小字长),默认值设置为4.
将此行添加(或修改)到mysql config /etc/my.cnf(或windows中的my.ini)
ft_min_word_len = 3
之后,您可以使用以下命令调用索引重新创建:
REPAIR TABLE companies QUICK;
BTW:全文搜索不接受LIKE
通配符:*
或%