Bonjour,
Recherche texte libre via requête PHP :
WHERE MATCH($champ) AGAINST('$text' IN BOOLEAN MODE)
chez OVH : Mutu avec SQL privé.
Table MyISAM cela marchait très bien sauf que par défaut ft_min_word_len = 4.
Or je veux 3, les mots de 3 lettres voivent être pris en compte, par exemple "hub usb"
Autrefois il était possible de changer cette valeur par le manager OVH.
Aujourd'hui il faut faire la demande au support, cela prend plusieurs mails, plusieurs coups de téléphone et plusieurs jours. Et à chaque mois il faut recommencer car je suppose qu'ils réinitialient leurs réglages.
OVH m'a demandé de passer la table en InnoDB car la valeur par défaut est 3.
J'ai passé la table à la fois en UTF-8 et en InnoDB.
Actuellement
hub usb -> 28 produits répondent à votre demande.// BON
hub usb a -> Désolé, aucun produit ne correspond au texte « hub usb a »
Cela signifie que "a" est considéré comme un motif de recherche, comme si ft_min_word_len = 1.
Le support d'OVH m'assure que ft_min_word_len est à 3.
Si je vais dans ma nouvelle table UTF-8 en InnoDB
SHOW VARIABLES LIKE '%ft_min_word_len%';
ft_min_word_len 4
Donc OVH dit que c'est 3, PHPMyAdmin dit que c'est 4 et dans la réalité c'est 1.
Avez-vous une piste ?
Le passage en UTF-8 peut-il poser ce genre de problème ?
Merci d'avance.
Partager