Affichage résultat moter de recherche

Eléphant du PHP | 287 Messages

17 avr. 2009, 11:59

Bonjour,
J'ai créé un moteur de recherche, mais j'aimerai afficher le nombre total de résultats obtenu, voire 0 si il n'y a pas de réponse.
Ensuite les résultats obtenus, peuvent-ils être classés par "pertinence"
Je m'explique :
Si je tape le mot "Port" j'ai tous les résultats "Port" et aussi "Aéroport", normal puisque j'ai choisi d'afficher le résultats sous cette forme "LIKE '%".$recherche ."%'"
Merci

Eléphant du PHP | 209 Messages

17 avr. 2009, 12:47


Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 avr. 2009, 14:15

Bah vu qu'il en est à l'origine, j'imagine qu'il a du la suivre ;)

Pour le nombre de résultats, tu peux regarder du côté de mysql_num_rows() pour connaitre le nombre d'enregistrements renvoyés par ta requête, ou faire une seconde requête avec un COUNT() pour connaitre le nombre de résultats présents en base.
(la différence étant principalement lié à l'usage éventuel d'un LIMIT qui aurait pour effet de limiter le nombre de résultats renvoyés par la requête, par rapport au nombre de correspondances réellement trouvées en base).

Quant à la pertinence des résultats, si tu arrives à définir ce qui te permet de dire que "port" serait plus pertinent que "aéroport", "portable" ou "transporteur" quand tu recherches tous les enregistrements qui contiennent la chaine "port", tu pourras en faire un algorythme pour trier tes résultats :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 287 Messages

17 avr. 2009, 14:50

Pour le nombre c'est OK, j'ai utilisé mysql_num_rows, quant à la pertinence apperemmment c'est pas gagné

ViPHP
ViPHP | 4039 Messages

18 avr. 2009, 10:00

En utilisant les possibilités de recherche full-text de mysql (match() against) il est facile d'obtenir un score par résultat. On peut même donner un poids différent à chaque mot.

Je donne à nouveau le lien, parce que c'est dommage de ne pas le lire:
http://dev.mysql.com/doc/refman/5.0/fr/ ... earch.html
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.