我的网站上有一个搜索位置,允许用户搜索内容。 直到今天,我使用LIKE功能完成了这项工作,但由于数据库很大,需要很长时间。这就是我的代码的样子:
SELECT * FROM articles WHERE body LIKE '%how%' AND '%to%' AND '%code%' LIMIT 30"
为了提高速度,我发现我可以使用FULL TEXT SEARCH,这就是我的代码的样子:
SELECT * FROM articles WHERE MATCH (body) AGAINST ('+how +to +code' IN BOOLEAN MODE)LIMIT 30;
问题是返回行但它们只是随机的,其中包含一些单词。
我做错了什么? :(
答案 0 :(得分:0)
检查您的MySQL设置ft_min_word_len
- 变量。您匹配的是'to',即2个字符,默认情况下,fulltext-index配置为仅索引长度为3的单词。
确保在更改body
- 值后,在ft_min_word_len
- 列上重建FULLTEXT索引。