Version complète: sur le forum Webmaster Hub : Recherche d'une phrase dans un index FULLTEXT
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
captain_torche
Bonsoir,
J'ai besoin de rechercher une phrase ("mot1 mot2") dans un champ indexé en fulltext.
J'utilise une requête du type :
SQL
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
pour rechercher une expression avec match against il faut que l'expression soit entre double quote
SQL
SELECT ID FROM table WHERE MATCH(Texte) AGAINST(' "mot1 mot2" ')
captain_torche
Je viens de tester, ça ne fonctionne pas.
Dudu
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
Merci, ça marche (il faut au préalable modifier le texte pour avoir "+mot1 +mot2"), mais c'est parfait !
Dadou
C'est plus une phrase qu'il recherche mais la présence des deux mots

CITATION
'+pomme +jus'
Recherche les lignes qui contiennent ces deux mots.


Si c'est pour une phrase

CITATION
'"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
Je revérifierai ce soir, mais les tests que j'avais faits ne semblaient pas marcher.
captain_torche
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
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
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.