Rechercher : dans
Par :

Aide - personnaliser son moteur de recherche

Dernière réponse le 21 déc 2007 à 18:52:25 termi-zzz, le 21 déc 2007 à 17:02:33 
 Signaler ce message aux modérateurs

Bonjour,

je suis en train de réaliser un moteur de recherche interne de mon site web avec base de donnée et table (id, titre, description, mots-clés, url, priorité, etc...) mais je rencontre un petit problème pour personnaliser son moteur de recherche interne.

Je souhaite pour une série de 3 requêtes, une pour rerchercher l'expression exacte, une pour rechercher les mots 1 par 1, une pour rechercher à l'intérieur de chaque mot s'il peut y'avoir des similitudes...Sauf qu'avec ce que j'ai créé, certes je n'ai pas de bugs, mais je n'ai pas les résultats souhaités, ça ne fonctionne pas comme ça devrait.

Est-ce que quelqu'un peut m'aider à peaufiner les requêtes pour qu'elle ressemble à celle qu'elle devrais être ???


1/ La première requête doit rechercher l'expression exacte entrée dans le formulaire. Exemple, recherche de "pizzas napolitaines", ça doit rechercher "pizzas napolitaines". En principe, ce que j'ai doit être bon ?

SELECT * from recherche where recherche_motscles LIKE '%$_POST[text]%' ORDER BY recherche_priority DESC

2/ La seconde requête doit rechercher les mots 1 par 1 entrés dans le formulaire. Exemple, pour une recherche de "pizzas napolitaines", ça doit rechercher "pizzas" OR "napolitaines". Donc ce que j'ai ci-dessous n'ai pas bon, mais comment résoudre ça ? Que faire pour que ça corresponde à la bonne requête ? Découper $i ? Est-ce suffisant ?

$query="SELECT * FROM recherche WHERE ";
for($i=0;$i<sizeof($array_chaine);$i++){
if(strlen($array_chaine[$i])>3){
if($i>0){$query.=" OR ";}
$query.="recherche_motscles = '$array_chaine[$i]'";
}
}
$query.= " ORDER BY recherche_priority DESC ";


3/ La troisième requête doit rechercher entre les mots, les découper pour mieux les analysés. Exemple, pour une recherche de "pizzas napolitaines", ça doit rechercher tous les mots qui commence par "pi" ou "piz" ou "pizz" et pareil pour "nap" ou "napo" etc... etc... Quelque chose de similaire... J'ai au final ceci, mais est-ce vraiment le plus pertinant pour correspondre une fois encore à la requête demandée ??? Ou est-ce que ça n'a pas vraiment de rapport ?

$query="SELECT * FROM recherche WHERE ";
for($i=0;$i<sizeof($array_chaine);$i++){
if(strlen($array_chaine[$i])>3){
if($i>0){$query.=" OR ";}
$query.="recherche_motscles LIKE '%$array_chaine[$i]%'";
}
}
$query.= " ORDER BY recherche_priority DESC ";


Voilà, si quelqu'un peut m'aider à mieux développer tout ça, faire un truc bien précis, ce serait franchement sympa... Merci d'avance!

a+

Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « Aide personnaliser son moteur de recherche » dans :
Facebook - Changer son mot de passe Voir Pour changer son mot de passe sur Facebook, il suffit de suivre la procédure suivante : 1- Ouvrir Facebook 2- Cliquer sur "Paramètres" en haut à droite 3- Cliquer sur "Modifier" dans la catégorie "Mot de passe". 4- Changer le mot de passe
Personnaliser son écriture VoirTransformer agréablement ses textes, avoir une police d'écriture originale, une jolie signature, personnaliser ses emails, ou donner du style à son blog...Tout cela est possible grâce aux caractères et polices d'écriture. La table des...
Comment changer mon mot de passe sous WLM/MSN VoirPour changer son mot de passe Windows Live Messenger, il suffit d'utiliser l'interface prévue à cet effet : http://memberservicesnet.passport.net/memberservice.srf?lc=1036 Si vous avez perdu votre mot de passe, merci de vous référer à...
[IE 7 et 8] Modifier le moteur de recherche par défaut VoirPour Internet Explorer 7 Ouvrez Internet Explorer. Faites un clic sur la flèche dans la barre de recherche en haut à droite. Cliquez sur "Modifier les paramètres de recherche par défaut". Vous pouvez : Définir un moteur de recherche...
PHP - Créer un moteur de recherche VoirIdée générale Le moteur de recherche ci-dessous ne correspond qu'à une idée possible de moteur de recherche simple, ne gérant qu'un seul mot clé. Le concept du fonctionnement de ce moteur est de créer une base de donnée contenant les mots clés de...
Web - Moteur de recherche VoirIl existe une énorme quantité d'informations sur Internet (plusieurs millions ou milliards de documents), et ces informations sont pour la plupart renouvelées quotidiennement. Le moteur de recherche est un élément indispensable pour s'y...
Rechercher sur Internet VoirRechercher sur Internet Etant donné le nom de pages web présentes pour le Web, il est nécessaire d'utiliser un outil pour rechercher une page spécifique correspondant à des critères de recherche: le moteur de recherche. Pour utiliser un moteur de...

1

 phil232, le 21 déc 2007 à 18:52:25

1. Non, c'est pas optimale --> "SELECT * from recherche where recherche_motscles = '$_POST[text]' ORDER BY recherche_priority DESC"
2. C'est bon
3. Le LIKE fonctionne dans l'autres sense : si t'as tapé "piz" le LIKE '%piz%' trouve tous les mots qui contiennent "piz" mais il fait pas ce que tu demandes. Pour resoudre ton pb il va falloir taper un peu, car tu dois faire

SELECT * from recherche where recherche_motscles LIKE 'p%' -- recherche tous les enregistrements qui commencent avec p
SELECT * from recherche where recherche_motscles LIKE 'pi%'
SELECT * from recherche where recherche_motscles LIKE 'piz%'
etc.

Répondre à phil232
Collection CommentÇaMarche.net