我讨厌在数据库上发布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匹配的结果:
以下是LIKE匹配的结果
如您所见,当它存在空格时...结果与MACTH AGAINST不匹配
我的请求是问题还是其他问题?
请帮帮我=)
答案 0 :(得分:2)
尝试使用*通配符
...AGAINST ('*330*') ...