1

我讨厌数据库上的 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”。

如果 if do a like anno_modele LIKE '%330%',它会匹配我 9 个结果。

以下是 MATCH AGAINST 匹配的结果:

在此处输入图像描述

以下是 LIKE 匹配的结果

在此处输入图像描述

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

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

请帮帮我=)

4

1 回答 1

2

尝试使用 * 通配符

...AGAINST ('*330*') ...
于 2013-02-20T16:32:34.560 回答