【发布时间】:2025-12-19 12:15:11
【问题描述】:
我正在尝试在 MySQL 中使用 MATCH AGAINST 选择产品。
标题的长度指定为单个数字加上字母m(表示米),即1m、2m、5m 等。
当我尝试将5m network cable 与下面的查询匹配时,它也会返回0.5m network cable、1.5m network cable 等。
如何在 2 个字符的字符串上获得准确的单词 MATCH?
我的查询:
SELECT title, category, price
FROM products_table
USE index (prod_idx)
WHERE (MATCH (title) AGAINST ('+"5m" +"network" +"cable"' IN BOOLEAN MODE))
【问题讨论】:
-
我不是SQL专家,所以我没有答案,但可能是
1.5m cable没有被选中,因为它包含5m,而是因为它包含@987654334 @,否则你可能有一个 OR 操作而不是你想要的 AND。 -
没有 MATCH AGAINST 的经验,但有一些关于全文索引的经验,我想到的是
.符号被解释为句子的结尾,而不是小数点符号。因此你的结果。但是,不知道如何为此配置mysql。也许是语言环境? -
还有被忽略的短词全文搜索的问题。以防万一。 MySQL Full-text search - search for short words
标签: mysql match match-against