Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1601 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Amélioration d'un moteur de recherche

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Amélioration d'un moteur de recherche

n°1894879
hazmoon
Posté le 14-06-2009 à 12:13:03  profilanswer
 

Bonjour Tout le monde,
 
Voila j'aimerai améliorer mon moteur de recherche sur mon site.
 
Exemple:
 
Entrée1:
Titre: Voiture bleu
Description: Une grande voiture bleu
 
Entrée2:
Titre: Voiture rouge
Description: Une grande voiture rouge
 
Si je recherche "voiture", mon moteur me trouve les deux entrée c'est très bien. Si je recherche "voiture bleu", mon moteur me trouve les deux entrée également or je voudrais dans ce cas qu'il n'affiche que l'expression exacte. C'est à dire uniquement entrée1.
Voila j'ai essayé quelques modifications sur le code mais ça ne fonctionne pas. Pourriez-vous m'aider s'il vous plaît?
Voici le code:

Code :
  1. if(trim(preg_replace("/[\s,]+/", '', $text_search)) != '') {
  2. $keywords = preg_split("/[\s,]+/", $text_search);
  3. $keywords = array_unique($keywords);
  4. $search .= ' AND (';
  5. $prefix = '';
  6. for($i = 0; $i < count($keywords); $i++) {
  7.  $search .= $prefix."a.ad_headline LIKE '%".$keywords[$i]."%' ";
  8.  $prefix = 'OR ';
  9. }
  10. for($i = 0; $i < count($keywords); $i++) {
  11.  $search .= $prefix."a.ad_text LIKE '%".$keywords[$i]."%' ";
  12.  $prefix = 'OR ';
  13. }
  14. $search .= ') AND a.published = 1';
  15. } else {
  16. $search .= ' AND a.published = 1';
  17. }


 
Merci d'avance


Message édité par hazmoon le 14-06-2009 à 12:13:40
mood
Publicité
Posté le 14-06-2009 à 12:13:03  profilanswer
 

n°1895063
rufo
Pas me confondre avec Lycos!
Posté le 15-06-2009 à 10:01:29  profilanswer
 

faut remplacer les 'OR' du prefix par des AND. Ou mieux, tu ne découpes pas les mots-clés avec les espaces et tu utilises la chaîne en 1 coup (mais là, ça implique que l'ordre des mots est important) et tu fais

Code :
  1. $search .= "OR a.ad_headline LIKE '%$text_search%' ";
  2. $search .= "OR a.ad_text LIKE '%$text_search%' ";


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1895065
flo850
moi je
Posté le 15-06-2009 à 10:03:36  profilanswer
 

mieux : tu utilise MATCH http://dev.mysql.com/doc/refman/5. [...] earch.html

 

encore mieux :  tu utilises SPHINX ( ici ) en surcouche  ou un autre "vrai" moteur de recherche ( solr par exemple)


Message édité par flo850 le 15-06-2009 à 10:03:51

---------------


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Amélioration d'un moteur de recherche

 

Sujets relatifs
Recherche programmeur HTML, JavaJeu flash futuriste (as3, 2D, strategie, gestion), Recherche colaborat
Création moteur de recherche alternatifImpact d'un changement de min word length sur recherche full text ?
Recherche dans tableau multi dimension ExcelRecherche personne(s) motivée(s)
Recherche Lib pour fichier .confrecherche de mot dans une page web
AMELIORATION D'un calendrier de recherche sur base sql 
Plus de sujets relatifs à : Amélioration d'un moteur de recherche


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR