mysql搜索查询代码问题

时间:2013-01-10 12:58:08

标签: php mysql sql

这是我执行搜索的代码

SELECT d.deal_id,
       d.deal_title,
       d.friendly_url
FROM wp_deals AS d
WHERE MATCH (d.deal_title) AGAINST ('Ultimate Revitalisation Kit' IN BOOLEAN MODE)
GROUP BY d.deal_id

工作正常。

但是当我搜索Kit时,它就变成了

SELECT d.deal_id,
       d.deal_title,
       d.friendly_url
FROM wp_deals AS d
WHERE MATCH (d.deal_title) AGAINST ('Kit' IN BOOLEAN MODE)
GROUP BY d.deal_id

并且没有给出任何结果,尽管在之前的搜索结果中有试剂盒。我不是这种搜索查询的专家。但我必须要求搜索查询不应该像关键字那样使用'%kit%'。所以这就是我使用反对和匹配的原因。这类高级查询是否有专家?你能把它做成一个出色的搜索查询吗? 请完美。所以看起来比查询更简单。

1 个答案:

答案 0 :(得分:1)

您需要更改mySQL安装的/etc/my.conf。默认情况下,全文搜索仅使用4个字符作为最小字长。您需要将其更改为3.

ft_min_word_len = 3

您还需要在表格上重建全文索引。您可以通过运行REPAIR命令来执行此操作:

REPAIR TABLE my_table QUICK;

或者您可以删除并重新创建索引。

执行此操作并重新启动mysql。您的搜索现在可以使用了。