1

我的网站上有一个搜索位置,允许用户搜索内容。直到今天,我一直在使用 LIKE 函数来完成这项工作,但由于数据库很大,所以需要很长时间。这就是我的代码的样子:

SELECT * FROM articles WHERE body LIKE '%how%' AND '%to%' AND '%code%' LIMIT 30"

为了提高速度,我发现我可以使用全文搜索,这就是我的代码的样子:

SELECT * FROM articles WHERE MATCH (body) AGAINST ('+how +to +code' IN BOOLEAN MODE)LIMIT 30;

问题是返回行,但它们只是其中包含一些单词的随机行。

我究竟做错了什么?:(

4

1 回答 1

0

检查 - 变量的 MySQL 设置ft_min_word_len。您正在匹配 2 个字符的“to”,默认情况下,全文索引配置为仅索引长度为 3 的单词。

确保body在更改 -value 后在 -column上重建 FULLTEXT-index ft_min_word_len

于 2013-07-25T09:11:25.800 回答