Mysql搜索引擎喜欢并匹配

标签 mysql sql-like match-against

我讨厌数据库中的 4000 多个广告。我在字段标题、型号和描述上使用全文索引。

在 MySQL 中,我将 ft_min_word_len 的值从 4 更改为 3。

其实并不是所有的结果都匹配。

这是一个简单的请求:

SELECT * ,
    MATCH (
        anno_modele, anno_titre, anno_desc
    )
    AGAINST (
        "330"
    ) AS relevance
FROM (
    `annonce`

JOIN possede
USING ( `anno_id` )
JOIN annonceur
USING ( `ann_id` )
JOIN cat_lang
USING ( `cat_id` )
JOIN lang_pays
USING ( `pays_id` )
JOIN marque
USING ( `mar_id` )
WHERE `mar_id` =867
AND MATCH (
    anno_modele, anno_titre, anno_desc
)
AGAINST (
    " 330"
 )
AND `cat_id`
IN (
    '3'
)
AND `anno_active` =1
AND `anno_mode` =1
AND `lang_pays`.`lang_id` = '3'
GROUP BY `anno_id`
ORDER BY `anno_prix` , `relevance` DESC
LIMIT 15

这符合我的 3 个结果。 330 只是字段“anno_model”。

如果做一个像 anno_modele LIKE '%330%',它匹配我 9 个结果。

这里是 MATCH AGAINST 匹配的结果:

enter image description here

这里是LIKE匹配的结果

enter image description here

如你所见,当它存在一个空格时......结果与MACTH AGAINST不匹配

问题是我的要求还是其他原因?

请帮帮我 =)

最佳答案

尝试使用 * 通配符

...AGAINST ('*330*') ...

关于Mysql搜索引擎喜欢并匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14984130/

相关文章:

mysql - MATCH AGAINST 不获取多列

Mysql 使用 MATCH() AGAINST() 搜索字符串和数字

mysql - SQLSTATE[HY000] [2003] 无法连接到 '127.0.0.1' (13) 上的 MySQL 服务器

arrays - 查找文本数组包含与输入相似的值的行

MYSQL 与Where 和Like And not in

mysql - 与 "foo.bar"匹配(带有句号/句号)

mysql - 如何获取日历小时中的日期时间差异

mysql - 我的 sql 查询有什么问题?

数据库更新的 PHP 查询执行成功但值未在数据库表上更新

mysql - 使用 LIKE MySQL 从两个表中提取信息