Aller au contenu

demande aide pour dev moteur de rech multicritères


tonguim

Sujets conseillés

Bonjour

Je voudrais concevoir un moteur de recherche multicritères, en Php/MySql. Pensez-vous que le couple (Php/MySql) soit le mieux adapté pour ce projet? pourquoi?

Connaissez vous des sites qui contiennent de la documentation sur

le sujet (analyse, conception et développement d'un moteur de recherche multicritères)?

Merci de m'aider

tonguim

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

le moteur de recherche multicritères que je voudrais réaliser est pour un site d'environ 500 pages.

Certains m'ont conseillé de ne pas réinventer la roue, et d'utiliser plutôt un moteur déjà existant quelque part, que je personaliserai.

Qu'en dites vous? Pouvez vous me conduire vers des sites qui m'aideront dans ce sens?

Merci pour votre aide

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Un moteur entierement en php est phpdig, qui convient bien pour de petits sites. (je suis monté jusqu'à 1 000 000 de lignes dans l'index ;) ) : http://www.phpdig.net/

De plus, le fait qu'il soit écrit en php//mysql aide pour développer de nouveaux modules, voire le personnaliser.

Tu devrais pouvoir très facilement en faire un moteur multi critère. Mais au fait, qu'entends tu par 'multi critères' ?

Seul bémol, la liste de discussion est en anglais... mais ils sont très compréhensifs si tu ne maitrises pas bien la langue :D

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

Merci a tous pour vos réponses; un moteur de recherche multicritères permet de réaliser une recherche à partir de plusieurs critères (2, 5 10, ou plus) entré par l'utilisateur, contrairement à un moteur de recherche monocritères qui fait la recherche à partir d'un seul critère.

Lien vers le commentaire
Partager sur d’autres sites

(...)un  moteur de recherche multicritères permet de réaliser une recherche à partir de plusieurs critères (2, 5 10, ou plus) entré par l'utilisateur, (...)

Bonjour,

Ceci ne dit pas vraiment ce que tu entends par multi critère ?

Recherche possible :

- avec plusieurs mots,

- avec plusieurs catégories, plusieurs thèmes,

- plusieurs 'masques', filtres' (comme google, avec ses : intitle, inurl, ...)

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

<?php
$q = $_GET['q']

 if (!$q) include("index-body.html");      
   
 else {            

     $table = explode(" ", $q);      

     $nb_mots = count($table);      

              if ($table[0]=="un"        
             OR $table[0]=="une"
             OR $table[0]=="de"
             OR $table[0]=="des"
             OR $table[0]=="du"
             OR $table[0]=="la"
             OR $table[0]=="les")

{ $sql = "SELECT * FROM moteur WHERE description LIKE '%abstardpa%' OR title LIKE '%ehfzhrs%' "; }

else { $sql = "SELECT * FROM moteur WHERE description LIKE '%$table[0]%' OR title LIKE '%$table[0]%' "; }    

         for ($i = 1; $i < $nb_mots; $i++) {
                           
if ($table[$i]=="un"            
                            OR $table[$i]=="une"
                            OR $table[$i]=="de"
                            OR $table[$i]=="des"
                            OR $table[$i]=="du"
                            OR $table[$i]=="la"
                            OR $table[$i]=="les")
   
                            {sql .= " "; }                                                              
                           
else { $sql .= "OR description LIKE '%$table[$i]%' OR title LIKE '%$table[$i]%'"; }    
                         }        
          $sql .= " LIMIT 0,10";        
                   
   
$connexion = mysql_connect("localhost", "LOGIN", "PASS");                        
$result = mysql_db_query("DATABASE", $sql);                                              
$nb_sites = mysql_num_rows($result);                              

          if ($nb_sites == 0    OR $q=='+'
    OR $q==' '
    OR $q==''
    OR $q=='.'
    OR $q==','
    OR $q=='\''
    OR $q=='"'
    OR $q=='?'
    OR $q=='!') include("no-result-body.html");        
    mysql_close($connexion);              
    else include("result-body.php");          
?>

Voila ça c'est la page de recherche, alors maintenant tu crées une page index avec le formulaire de recherche, cete page s'appelle index-body.html, une page qui dit que y'a pas de resultat : no-result-body.html et une page en php qui affiche les resultats, pour afficher les resultats tu peux faire une boucle en utilisant :

<?php echo ''.htmlentities($data['url']).''; ?>
<?php echo ''.htmlentities($data['description']).''; ?>
<?php echo ''.htmlentities($data['title']).''; ?>

et tu crées une table moteur avec les infos que tu as besoin !

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour les 2 premières lignes, tu peux utiliser l'arobase qui te permet de tester si la variable existe, et de lui donner la valeur de cette variable (exemple 1) :

// exemple 1 :
if (@$q = $_GET['q'] )echo"<br>ok";
echo "<br>--".$q;
//exemple 2 :
if (isset($q)){echo"oui";}else echo"non";

Attention, dans ce cas ci, la variable $q n'existe toujours pas, mais pourtant, elle ne génère pas d'erreurs (exemple 2)

Tu peux utiliser la fonction in_array, au lieu de mettre 6 $table[], à chaque fois, comme l'indique l'exemple ci dessous :

<?

$bad_word = array("un","une","de","des","ou");

$txt="un petit mot";

$a_word=explode(" ",$txt);

foreach ($a_word as $value) echo"<br>".( in_array(trim($value),$bad_word) ?"Un mauvais mot":"Mot gentil")." : <b>".$value."</b>";

?>

Il te sera ainsi plus facile de compléter ton tableau.

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

re !

J'ai essyé cette fonction mais j'ai un problème, ça me fait une parse erreur et en + sur dreamweaver : in_array ne se met pas en bleu comme toute les fonctions !

...            
$bad_words = array("un","une","de","des","du","la","les")

if (in_array ($table[0], $bad_words))
...

mais où est le problème ?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...