Php 全文搜索多个关键字

Php 全文搜索多个关键字,php,sql,full-text-search,Php,Sql,Full Text Search,我的网站上有一个搜索位置,允许用户搜索内容。 直到今天,我一直在使用LIKE函数,它完成了这项工作,但由于数据库很大,所以花费了很长时间。我的代码是这样的: SELECT * FROM articles WHERE body LIKE '%how%' AND '%to%' AND '%code%' LIMIT 30" 为了提高速度,我发现我可以使用全文搜索,我的代码是这样的: SELECT * FROM articles WHERE MATCH (body) AGAINST ('+how +t

我的网站上有一个搜索位置,允许用户搜索内容。 直到今天,我一直在使用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;
问题是返回的行只是随机的,其中包含一些单词


我做错了什么

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


确保在更改ft\u min\u word\u len-value后在body列上重建全文索引。

您检查过了吗?你可以在那里找到你的问题的答案。你有全文索引吗?@BartFriederichs是的,我知道我的引擎是InnoDB,我试过把ft_min_word_len=2,当我运行sql时,如果它有少于四个字符的单词,我会得到零行。我认为你是对的。我将尝试查找设置,并查看它是否起作用,phpmyadmin显示ft_min_word_len=2,但每当我有少于四个字符的单词时,它都会显示零行。