tonguim Posté 28 Mars 2004 Posté 28 Mars 2004 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
Monique Posté 28 Mars 2004 Posté 28 Mars 2004 Bonjour, Voilà deux sources d'information : - Réaliser un moteur de recherche interne en PHP - Moteur de recherche avec swish-e
tonguim Posté 30 Mars 2004 Auteur Posté 30 Mars 2004 Merci Monique pour ta reponse; j'exploite les sites dont tu m'as donne les adresses.
tonguim Posté 31 Mars 2004 Auteur Posté 31 Mars 2004 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
Anonymus Posté 31 Mars 2004 Posté 31 Mars 2004 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 Anonymus.
tonguim Posté 2 Avril 2004 Auteur Posté 2 Avril 2004 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.
Anonymus Posté 3 Avril 2004 Posté 3 Avril 2004 (...)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.
tonguim Posté 7 Avril 2004 Auteur Posté 7 Avril 2004 La recherche multicritère se fera par plusieurs mots clés. Merci.
rottman Posté 8 Avril 2004 Posté 8 Avril 2004 <?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 !
Anonymus Posté 8 Avril 2004 Posté 8 Avril 2004 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.
rottman Posté 9 Avril 2004 Posté 9 Avril 2004 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 ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant