Page 1 sur 1

"et" logique dans recherche fulltext

Posté : 23 févr. 2006, 18:20
par rebaj
Bonjour!

Je me suis fait un petit moteur de recherche sur mon site, mais malheureusement n'arrive pas a bien parametrer ma requete fulltext. Je m'explique:

Quand je fait une recherche sur le terme "mot1 mot2", les résultats comportent soit les deux mots, soit l'un des deux.

Comment faire pour n'obtenir les résultats qui contiennent uniquement les deux mots?

ma requete:

Code : Tout sélectionner

SELECT *, MATCH (description) AGAINST ('+$motscles') AS score FROM matable WHERE MATCH (description) AGAINST (+'$motscles')";
merci!

Posté : 23 févr. 2006, 21:15
par ouckileou
Peut-être en découpant et en cherchant les mots séparément :

Code : Tout sélectionner

SELECT * FROM matable WHERE MATCH (description) AGAINST ('$motscle1') AND MATCH (description) AGAINST ('$motscle2')";
Tu peux facilement récupérer un tableau contenant tes mots clés en faisant un explode avec le séparateur (espace, +...)

Posté : 23 févr. 2006, 21:55
par Hubert Roksor
Ou tout simplement en utilisant IN BOOLEAN MODE, dont c'est le boulot ;)

Code : Tout sélectionner

SELECT *, MATCH (description) AGAINST ('deux mots') AS score FROM matable WHERE MATCH (description) AGAINST ('+deux +mots' IN BOOLEAN MODE) ORDER BY score DESC
Veille bien à lire le manuel concernant le fonctionnement de IN BOOLEAN MODE. Par exemple, celui-ci ne renvoit pas les enregistrements par ordre de pertinence par défaut.