captain_torche Posté 6 Octobre 2008 Posté 6 Octobre 2008 Bonsoir, J'ai besoin de rechercher une phrase ("mot1 mot2") dans un champ indexé en fulltext. J'utilise une requête du type : SELECT ID FROM table WHERE MATCH(Texte) AGAINST('mot1 mot2') Je cherche à obtenir une correspondance exacte (que les enregistrements contenant l'expression "mot1 mot2"), mais pas ceux ne contenant que l'un des deux. Comment rédiger ma requête ?
Dadou Posté 6 Octobre 2008 Posté 6 Octobre 2008 pour rechercher une expression avec match against il faut que l'expression soit entre double quote SELECT ID FROM table WHERE MATCH(Texte) AGAINST(' "mot1 mot2" ')
captain_torche Posté 7 Octobre 2008 Auteur Posté 7 Octobre 2008 Je viens de tester, ça ne fonctionne pas.
Dudu Posté 7 Octobre 2008 Posté 7 Octobre 2008 Salut Si j'en crois la doc, il faut utiliser le mode booléen pour pouvoir cibler une expression exacte avec des guillemets doubles. Booléens de recherche en texte intégral
captain_torche Posté 7 Octobre 2008 Auteur Posté 7 Octobre 2008 Merci, ça marche (il faut au préalable modifier le texte pour avoir "+mot1 +mot2"), mais c'est parfait !
Dadou Posté 7 Octobre 2008 Posté 7 Octobre 2008 C'est plus une phrase qu'il recherche mais la présence des deux mots '+pomme +jus'Recherche les lignes qui contiennent ces deux mots. Si c'est pour une phrase '"deux mots"'Recherche les lignes qui contiennent exactement la phrase ``deux mots'' (par exemple, les lignes qui contiennent ``deux mots d'amour'' mais pas ``le mot deux''). Notez que les caractères " qui entourent la phrase délimitent la phrase. Ils ne délimitent pas la chaîne. Ah oui j'avais oublié le mode booleen
captain_torche Posté 7 Octobre 2008 Auteur Posté 7 Octobre 2008 Je revérifierai ce soir, mais les tests que j'avais faits ne semblaient pas marcher.
captain_torche Posté 8 Octobre 2008 Auteur Posté 8 Octobre 2008 Ok, ça marche, merci encore ! J'ai une dernière question : quid de la performance de ces recherches ? Ca me semblerait l'idéal pour gérer un moteur de recherche, mais avec une base plus conséquente que ma base de tests, les temps d'exécution des requêtes ne serait-il pas trop long ?
Dadou Posté 8 Octobre 2008 Posté 8 Octobre 2008 Je l'ai mis en place sur un site qui à pas mal de contenu, sur plusieurs colonnes et plusieurs tables, l'affichage des résultats reste réactif. Si tu veux je te file l'adresse en MP pour que tu puisse juger
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant