moteur de recherche interne
25 messages • Page 1 sur 2 • 1, 2
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
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 !
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 !
Pour ma part j'utilise cinq requêtes SQL pour une recherche, par ordre de pertinence(recherche d'infos sur un site) :
Si ça t'intéresse milkiway, je te mettrais ça de retour chez moi
- 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
Merci pour les réponses !
Ca m'intéresse beaucoup
C'est vraiment sympa de ta part.
J'attend ça ! Merci
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) :Si ça t'intéresse milkiway, je te mettrais ça de retour chez moi
- Nom exact
- Nom + description + contenu approchant
- Nom + descrîption approchant
- Nom approchant
- Quasiment aléatoire
Ca m'intéresse beaucoup
C'est vraiment sympa de ta part.
J'attend ça ! Merci
Je te livre le php tel quel :
La requête de création de la table ( le seul truc important ce sont les index )
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.
- Code: Tout sélectionner
<?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 )
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.
^^ 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.
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.
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.
25 messages • Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Overture en passe de racheter Altavista...
- Design de WRI version 3
- Organiser un bon netlinking interne : conseil n°8 en référencement
- Calcul du ratio de liens profonds vers un site web
- Recherche dans l'actualité WebRankInfo
- Alexa lance un moteur de recherche d'images
- Référencement : gestion des redirections par Yahoo
- Google Custom Search Engine (CSE) : le moteur personnalisable de Google
- Référencement : faut-il abandonner les balises META ?
- Ayez une bonne politique de format d'URL : conseil n°6 en référencement
- Moteur de recherche interne
- moteur de recherche interne ?
- Un moteur de recherche interne sécure...
- Moteur de recherche interne (résolu)
- Moteur de recherche interne au site
- optimiser un moteur de recherche interne
- Problème moteur de recherche interne
- Moteur de recherche interne mysql
- Script moteur de recherche interne
- Un moteur de recherche interne Exalead ?
- Moteur de recherche interne Google
- Moteur de recherche interne AdSense
- 01net. - moteur de recherche interne
- Recherche bon moteur interne
- pertinence d'un moteur de recherche interne
Consultez la description détaillée des produits ou services de Google suivants : Google Custom Search Engine, Google SearchMash, Google mail
- Calculer le ratio de liens profonds
Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés. - Logiciel d'analyse du positionnement
AgentWebRanking est un logiciel professionnel qui permet d'analyser le positionnement d'un ou plusieurs sites dans plus de 300 moteurs de recherche dans le monde. Vous pouvez ainsi analyser les performances du référencement pour de nombreux mots-clés. - Transformer des textes non cliquables en liens
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: simbadlemarin5 et 0 invités





le forum