Mysql recherche de chaîne de caractères et un nombre à l'aide de MATCH() CONTRE()
J'ai un problème avec le MATCH CONTRE la fonction.
La requête suivante me donner le même résultat:
SELECT * FROM models MATCH(name) AGAINST('Fiat 500')
SELECT * FROM models MATCH(name) AGAINST('Fiat')
Comment puis-je rechercher pour les chaînes et les numéros dans une colonne de TEXTE INTÉGRAL table?
Grâce
OriginalL'auteur Gambric | 2013-01-28
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin d'
Fiat
et500
partout où l'ordre n'a pas d'importance, alorsSi vous avez besoin d'
Fiat 500
ensemble, puisSi vous avez besoin d'
Fiat
et zéro ou plusieurs500
, puisSi vous avez besoin d'
500
et zéro ou plusieursFiat
, puisLui donner un essai !!!
MISE À JOUR 2013-01-28 18:28 HAE
Voici les paramètres par défaut pour la recherche en texte intégral
Avis que ft_min_word_len est de 4 par défaut. Le jeton de 500 est de longueur 3. ainsi, il ne sera pas indexé. Vous aurez à faire à trois(3) choses:
De l'ÉTAPE 01 : Configurer pour les plus petits de la chaîne de jetons
Ajouter à
/etc/my.cnf
ÉTAPE 02 : Redémarrer mysql
ÉTAPE 03 : Réindexer tous les index dans la
models
tableVous pouvez simplement supprimer et ajouter les index de texte intégral
ou de le faire en plusieurs étapes et de voir comment grand il va obtenir à l'avance
Lorsque vous êtes satisfait de ce travail, puis exécutez
Lui donner un essai !!!
Si je recherche seulement "500" donnez-moi sans résultat...pourquoi?
Je vais mettre à jour ma réponse pour que...
ok ça marche!!! merci encore!
ne pas essayer de pirater mais @RolandoMySQLDBA où placez-vous le signe + lorsque vous utilisez php var?
"+'FIAT 500'"
OriginalL'auteur RolandoMySQLDBA
Juste au cas où il aide les autres, si vous utilisez InnoDB, vous devez utiliser un ensemble différent de mysql.cnf propriétés
par exemple
et dans mon.cnf définir la valeur suivante au lieu de ft_min_word_len
OriginalL'auteur ashario