Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

moteur de recherche interne

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Administration d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Mar Oct 12, 2004 20:12    Sujet du message: moteur de recherche interne

Bonjour,
je monte un site qui est destiné a recevoir une grosse quantité d"informations piochées dans une base de donnée, pensez vous qu'il est plus intelligent de coder moi même un moteur de recherche en PHP ou alors d'en prendre un tout fait ?
Dans ce cas que me conseillez vous ?

Ce qui est très important c'est qu'il FAUT qu'il soit :
- rapide
- léger, très léger
- efficace (...)
Merci !
 
milkiway Visiter le site web du posteur
Dr DLP
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juin 2003
Messages: 575
Localisation: Dans mon terrier

URL permanente de ce messagePosté le : Mar Oct 12, 2004 21:50    Sujet du message: moteur de recherche interne

Si c'est sur UNE base de données qui t'appartient, je te conseille de le coder toi même.
Après ça dépend du type de résultats que tu veux sortir.
 
Dr DLP Visiter le site web du posteur
jeromax
WRInaute accro
WRInaute accro

Inscrit le: 12 Nov 2003
Messages: 1084
Localisation: :noitasilacoL

URL permanente de ce messagePosté le : Mar Oct 12, 2004 22:20    Sujet du message: moteur de recherche interne

J'en ai fait un petit sur mon site. Le problème, c'est la pertinence des réponses.... Confused
 
jeromax Visiter le site web du posteur
Dr DLP
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juin 2003
Messages: 575
Localisation: Dans mon terrier

URL permanente de ce messagePosté le : Mar Oct 12, 2004 22:37    Sujet du message: moteur de recherche interne

Pour ma part j'utilise cinq requêtes SQL pour une recherche, par ordre de pertinence(recherche d'infos sur un site) :
  • Nom exact
  • Nom + description + contenu approchant
  • Nom + descrîption approchant
  • Nom approchant
  • Quasiment aléatoire

Si ça t'intéresse milkiway, je te mettrais ça de retour chez moi Smile
 
Dr DLP Visiter le site web du posteur
shrom
WRInaute passionné
WRInaute passionné

Inscrit le: 05 Juil 2004
Messages: 866

URL permanente de ce messagePosté le : Mar Oct 12, 2004 23:52    Sujet du message: moteur de recherche interne

Certains SGBD ( PostgreSQL, MySQL, Oracle ... ) ont une fonction de recherche Full Text et trie automatiquement selon la pertinence.
 
shrom Visiter le site web du posteur
Dr DLP
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juin 2003
Messages: 575
Localisation: Dans mon terrier

URL permanente de ce messagePosté le : Mar Oct 12, 2004 23:54    Sujet du message: moteur de recherche interne

C'était sous-entendu pour moi Smile
Malheuresement rajouter des index FULL TEXT ralentit les recherches Neutral
 
Dr DLP Visiter le site web du posteur
Zang
WRInaute passionné
WRInaute passionné

Inscrit le: 16 Sep 2004
Messages: 954

URL permanente de ce messagePosté le : Mar Oct 12, 2004 23:54    Sujet du message: moteur de recherche interne

tiens ca minteresse aussi un moteur de recherche interne
 
Zang Visiter le site web du posteur
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Mer Oct 13, 2004 20:23    Sujet du message: moteur de recherche interne

Merci pour les réponses !

Dr DLP a écrit:
Pour ma part j'utilise cinq requêtes SQL pour une recherche, par ordre de pertinence(recherche d'infos sur un site) :
  • Nom exact
  • Nom + description + contenu approchant
  • Nom + descrîption approchant
  • Nom approchant
  • Quasiment aléatoire

Si ça t'intéresse milkiway, je te mettrais ça de retour chez moi Smile

Ca m'intéresse beaucoup Very Happy
C'est vraiment sympa de ta part.
J'attend ça ! Merci
 
milkiway Visiter le site web du posteur
Dr DLP
WRInaute passionné
WRInaute passionné

Inscrit le: 29 Juin 2003
Messages: 575
Localisation: Dans mon terrier

URL permanente de ce messagePosté le : Mer Oct 13, 2004 22:01    Sujet du message: moteur de recherche interne

Je te livre le php tel quel :
Code:
<?php

require('common.php');
require('configs/functions_common.php');

function already_displayed ( $seeked_site_id, $seeked_array )
{
   for ( $h = 0 ; $h < count($seeked_array); $h ++)
   {
      if ( $seeked_site_id  == $seeked_array[$h][0] )
      {
         return true;
      }
   }
   return false;
}

$search_query = strtolower(trim(htmlspecialchars($_GET['search_query'])));
$where = (isset($_GET['sub_cat_id'])) ? 'AND site_cat='.intval($_GET['sub_cat_id']) : '';

// Etape absolue, recherche d'un titre de site correspondant à la requête
$sql = mysql_query("SELECT site_id, site_link, site_cat, site_name, site_desc FROM easy_links_sites WHERE LOCATE('$search_query',site_name) > 0 $where") or die ("Fhtagn : " . mysql_errno()." : ".mysql_error()."<br />".$sql);
while( $sites = mysql_fetch_row($sql) )
{
   $sites_to_show[] = $sites;
}

// Deuxième étape absolue, la recherche croisée titre/description/contenu
// Cette recherche est la plus puissante puiqu'elle assure une très importante pertinence de la requête
$sql = mysql_query("SELECT site_id, site_link, site_cat, site_name, site_desc, site_contents, MATCH (site_name,site_desc,site_contents) AGAINST ('$search_query') AS score FROM easy_links_sites WHERE MATCH (site_name,site_desc,site_contents) AGAINST ('$search_query') $where ORDER BY score DESC") or die ("Fhtagn : " . mysql_errno()." : ".mysql_error()."<br />".$sql);
while( $sites = mysql_fetch_row($sql) )
{
   if ( !already_displayed($sites[0], $sites_to_show) )
   {
      $sites_to_show[] = $sites;
   }
}

// Première étape relative, la recherche croisée titre/description
$sql = mysql_query("SELECT site_id, site_link, site_cat, site_name, site_desc, site_contents, MATCH (site_name,site_desc) AGAINST ('$search_query') AS score FROM easy_links_sites WHERE MATCH (site_name,site_desc) AGAINST ('$search_query') $where ORDER BY score DESC") or die ("Fhtagn : " . mysql_errno()." : ".mysql_error()."<br />".$sql);
while( $sites = mysql_fetch_row($sql) )
{
   if ( !already_displayed($sites[0], $sites_to_show) )
   {
      $sites_to_show[] = $sites;
   }
}

// Deuxième étape relative, la recherche croisée description/contenu
$sql = mysql_query("SELECT site_id, site_link, site_cat, site_name, site_desc, site_contents, MATCH (site_desc,site_contents) AGAINST ('$search_query') AS score FROM easy_links_sites WHERE MATCH (site_desc,site_contents) AGAINST ('$search_query') $where ORDER BY score DESC") or die ("Fhtagn : " . mysql_errno()." : ".mysql_error()."<br />".$sql);
while( $sites = mysql_fetch_row($sql) )
{
   if ( !already_displayed($sites[0], $sites_to_show) )
   {
      $sites_to_show[] = $sites;
   }
}

// Troisième étape relative, la requête "ressemble" au titre d'un site
$sql = mysql_query("SELECT site_id, site_link, site_cat, site_name, site_desc, site_contents, SUBSTRING(SOUNDEX(site_name),1,2) AS cosmos , SUBSTRING(SOUNDEX('$search_query'),1,2) AS spatio FROM easy_links_sites WHERE SUBSTRING(SOUNDEX(site_name),1,2) = SUBSTRING(SOUNDEX('$search_query'),1,2) $where") or die ("Fhtagn : " . mysql_errno()." : ".mysql_error()."<br />".$sql);
while( $sites = mysql_fetch_row($sql) )
{
   if ( !already_displayed($sites[0], $sites_to_show) )
   {
      $sites_to_show[] = $sites;
   }
}

$template->assign("sites",$sites_to_show);

template_display('search.tpl');

?>

La requête de création de la table ( le seul truc important ce sont les index )
Citation:
CREATE TABLE easy_links_sites (
site_id int(8) NOT NULL auto_increment,
site_name varchar(255) NOT NULL default '',
site_desc varchar(255) NOT NULL default '',
site_link varchar(255) NOT NULL default '',
site_cat int(8) NOT NULL default '1',
site_registered int(11) NOT NULL default '0',
site_note decimal(4,2) NOT NULL default '10.00',
site_hits int(8) NOT NULL default '0',
site_cool tinyint(1) NOT NULL default '0',
site_approved tinyint(1) NOT NULL default '0',
site_voters int(8) NOT NULL default '0',
site_owner_name varchar(255) NOT NULL default '',
site_owner_mail varchar(255) NOT NULL default '',
site_contents text NOT NULL,
site_last_update int(11) NOT NULL default '0',
site_thumb varchar(255) NOT NULL default '',
site_abstract varchar(255) NOT NULL default '',
site_images_last_update int(11) NOT NULL default '0',
PRIMARY KEY (site_id),
FULLTEXT KEY site_desc (site_desc,site_contents),
FULLTEXT KEY site_name (site_name,site_desc),
FULLTEXT KEY site_contents (site_name,site_desc,site_contents)

) TYPE=MyISAM;


L'affichage des résultats se fait via Smarty.
Si tu veux voir ce que ça donne en action : -http://jeux-gratuits-en-ligne.com/annuaire-jeux/ .
Si un résultat ne te semble pas pertinent, jette un oeil à l'url donnée, le contenu de la page est non affiché mais pris en compte.
 
Dr DLP Visiter le site web du posteur
The Jedi
WRInaute passionné
WRInaute passionné

Inscrit le: 31 Mar 2003
Messages: 807
Localisation: Bordeaux

URL permanente de ce messagePosté le : Jeu Oct 14, 2004 10:05    Sujet du message: moteur de recherche interne

^^ pour faciliter la recherche sur tout mon site j'ai préféré utiliser Google. Ca a l'avantage de mettre l'utilisateur dans un bain qu'il connait déjà. Certes c'est moins personnalisé mais dans la mesure où c'est une recherche globale au site, c'est pas gênant.
 
The Jedi Visiter le site web du posteur
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Jeu Oct 14, 2004 20:12    Sujet du message: moteur de recherche interne

Merci bcp DLP mais je suis novice en SQL alors je crois que je vais regarder la doc en profondeur pour comprendre ton code !

The jEDI : oui mais ça nécessite une indexation par GG
 
milkiway Visiter le site web du posteur
Juxener
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 17 Mar 2004
Messages: 208
Localisation: Laon (02)

URL permanente de ce messagePosté le : Jeu Oct 14, 2004 21:26    Sujet du message: moteur de recherche interne

Fait ton propre script, c le seul moyen d'avoir qqch de fiable et de parfait !

PS: Pour le mien, aucune requête SQL :p !
 
Juxener Visiter le site web du posteur
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Ven Oct 15, 2004 11:23    Sujet du message: moteur de recherche interne

En gros ce sont des fonctions PHP ou des fonctinos SQL lors des requêtes qu'il faut utiliser ?
 
milkiway Visiter le site web du posteur
Juxener
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 17 Mar 2004
Messages: 208
Localisation: Laon (02)

URL permanente de ce messagePosté le : Ven Oct 15, 2004 18:53    Sujet du message: moteur de recherche interne

En principe un moteur ça se joue sur un BDD (couramment MySQL), donc avec des requêtes SQL (appellées par des fonctions PHP d'ailleurs :d).
Aprés, pour ceux qui préfére utiliser SQL le moins possible, c possible sans... Avec une gestion par tableaux PHP, des sortes de fausses BDD.
 
Juxener Visiter le site web du posteur
milkiway
WRInaute accro
WRInaute accro

Inscrit le: 03 Fév 2004
Messages: 1949
Localisation: Venigo

URL permanente de ce messagePosté le : Ven Oct 15, 2004 19:07    Sujet du message: moteur de recherche interne

Je me suis mal exprimé,
mieux vaut utiliser les fonctions de recherche de MySQL ou celles de PHP ?
 
milkiway Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Administration d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort