当搜索小于 4 个字符的字符串时,MySQL 中的 MATCH AGAINST 不显示记录
我在列上使用 FULLTEXT 索引,当我在布尔模式下使用 MATCH....AGAINST 搜索任何长度小于 4 个字符的搜索词时,它不会返回任何记录。当我使用 LIKE 时,它确实返回记录。 可能是什么问题?是否是因为某些 MySQL 限制(例如它不索引长度小于 4 个字符的单词)或某些特定于 FULLTEXT 索引的限制?
谢谢
I am using FULLTEXT index on a column and when I use MATCH....AGAINST in boolean mode for any search term which is less than 4 characters in length then it doesn't return any records. And when I use LIKE then it does return records.
What could be the problem? Is it because of some MySQL limitation like it doesn't index words that are less than 4 chars in length or some limitation specific to FULLTEXT index?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查您的
ft_min_word_len
系统变量。这定义了要索引的单词的最小长度。更新:好的,我用
ft_min_word_len=3
做了一些测试首先是一个测试表
接下来是一些测试数据:
运行这个:
返回这个:
运行这个:
返回这个:
所以 FT 搜索可以工作正如预期的那样。您尝试查找的单词有可能实际上是类似
leds
的内容,而不是单个单词led
吗?Check your
ft_min_word_len
system variable. That defines the minimum length of words to be indexed.Update: Ok I did some tests with
ft_min_word_len=3
First a test table
Next some test data:
Running this:
Returns this:
Running this:
Returns this:
So FT search works as expected. Any chance the word you are trying to find is actually something like
leds
and not the single wordled
?