这是我执行搜索的代码
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
尽管套件存在于之前的搜索结果中,但没有给出任何结果。我不是此类搜索查询的专家。但我必须要求搜索查询不应使用 like 关键字,即“%kit%”。这就是我使用 against 和 match 的原因。有人擅长这种类型的高级查询吗?你能让它成为一个出色的搜索查询吗? 请让它变得完美。所以它看起来比简单的类似查询更好。
最佳答案
您需要更改 mySQL 安装的/etc/my.conf。默认情况下,全文搜索仅使用 4 个字符作为最小字长。您需要将其更改为 3。
ft_min_word_len = 3
您还需要重建表上的全文索引。您可以通过运行 REPAIR 命令来完成此操作:
REPAIR TABLE my_table QUICK;
或者您可以删除并重新创建索引。
执行此操作并重新启动 mysql。您的搜索现在可以工作了。
关于php - mysql搜索查询代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14258493/