Mysql搜索引擎喜欢和匹配

时间:2013-02-20 15:50:00

标签: mysql sql-like match-against

我讨厌在数据库上发布4000多个广告。我在字段标题,模型和描述上使用了FULLTEXT索引。

在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不匹配

我的请求是问题还是其他问题?

请帮帮我=)

1 个答案:

答案 0 :(得分:2)

尝试使用*通配符

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