php - mysql搜索查询代码问题

标签 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

尽管套件存在于之前的搜索结果中,但没有给出任何结果。我不是此类搜索查询的专家。但我必须要求搜索查询不应使用 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/

相关文章:

sql - 错误 : NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [name] during auto-discovery of a native-sql query

sql - Informatica 中 where 子句中的动态运算符

javascript - 联系表上的错误

php - 如何在 PHP 中遍历这个 json 解码数据?

mysql - 在 sql 中导入 csv 文件时出现 secure-file-priv 错误

php - 在特定条件下从数据库获取值

没有长度的SQL存储过程参数

php - Wordpress 上传文件大小

php - 递归项状态性能

MySQL 计数不会与我的其余数据一起返回空计数。