Page 1 sur 1

Obtenir un rapport des recherches non abouties

Posté : 14 oct. 2014, 11:44
par leCarthaginois
Bonjour à toutes et à tous,

D’ordinaire, j’aime me dépatouiller seul d’un problème un peu coriace en piochant à droite à gauche des lignes de codes, des astuces etc. Mais là, j’ai eu beau chercher : pas d’infos (soit j’ai mal cherché, ce qui peut nous arriver à tous :oops: , soit je n’avais tout simplement pas les bons mots-clés…). Aucune piste ne m’a donc aidé à résoudre un petit problème qui me parait pourtant assez simple. Explications.

Je gère un site « encyclopédique » qui fonctionne comme une sorte de dictionnaire en ligne : l’élément central est la barre de recherche. Elle permet à l’utilisateur d’obtenir plusieurs informations autour du mot qu’il a recherché.

Ces informations sont stockées dans plusieurs bases de données que j’ai créées. Ces BDD, je les complète jour après jour avec de plus en plus de données. Résultat :
1 ) ça me prend un temps fou
2 ) il y a tellement de sujets à couvrir que je n’ai pas encore de méthodologie pour compléter ma base de façon intelligente

De ces faits là, je ne m’en plains pas (sinon j’arrêterais ce que je fais :-)) mais c’est justement le point 2 qui me pousse à imaginer une petite astuce.

Le but de ce site n’est pas (à court terme) de répertorier toutes les informations imaginables mais de répertorier en priorité les informations qui intéressent les utilisateurs. Exemple : si je m’enquiquine à stocker des infos sur les recettes mexicaines, alors que mes utilisateurs préfèrent en savoir plus sur la poésie irlandaise, je perds mon temps…

L’idée serait donc d’utiliser un code qui me permettent d’obtenir un « rapport » des recherches effectuées mais n’ayant pas abouti (de façon quotidienne ou hebdomadaire).

Aujourd’hui, quand une recherche n’a pas abouti (car je ne l’ai pas dans ma BDD), j’affiche un message du type « Navré, ce terme n’est pas référencé ». Avec le « rapport », je pourrais ajouter en priorité dans ma BDD les infos que les utilisateurs attendent le plus :D

Est-ce que c’est assez clair ? Est-ce que vous avez des idées ?
Merci beaucoup par avance.

PS : j’aimerais le coder en php si possible (peu à l’aise avec les autres langages).

Re: Obtenir un rapport des recherches non abouties

Posté : 14 oct. 2014, 12:17
par ynx
Salut,

Un début de solution pourrait être d'enregistrer en bdd toutes les recherches effectuées via la barre de recherche (avec le nombre de résultat pour chaque recherche, ou n'enregistrer que les recherches sans résultats si c'est seulement celles-ci qui t’intéresse).
Dans un second temps, il suffit d'exploiter ces enregistrements pour faire tes propres statistiques (basiquement, une simple requête sql regroupant toutes les recherches similaires triés par le nombre de fois où cette recherche a été effectuée).

Une des difficultés principales est à mon avis l'enregistrement et l'exploitation des termes de la recherche : comment regrouper les recherches qui ont des termes similaires (ex: "recettes mexicaines", "recette mexicaine", "recettes mexicaine" ou "recette mexicaines"). Pour un nombre limité de recherches, tu pourrais éventuellement faire ce regroupement à la main à la réception du rapport.

Bon développement :)

Re: Obtenir un rapport des recherches non abouties

Posté : 14 oct. 2014, 13:20
par leCarthaginois
Merci ynx pour ta réponse.

Présenté sous cet angle, je peux effectivement déclencher l'enregistrement du mot-clé dans un BDD sur la condition de l'existence ou non d'un résultat.

Mais l'exploitation est en effet délicate par la suite. Je ne m'y connais pas encore bien en php (d'ou le sujet dans le chapitre "Débutant" :D ) : y'a pas un truc du style "%requete%" qui permet de trouver les termes approchants du mot "requete" ?

Re: Obtenir un rapport des recherches non abouties

Posté : 14 oct. 2014, 14:09
par ynx
Si c'est exactement ça.
En Mysql il faut utiliser l'opérateur LIKE avec les jokers % ou _ : http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html

Par exemple :
SELECT * FROM recherches WHERE termes LIKE '%plop%'
-> retourne les lignes de la table 'recherches' dont le champ 'termes' contient la valeur 'plop'

Re: Obtenir un rapport des recherches non abouties

Posté : 20 oct. 2014, 20:09
par leCarthaginois
Re-bonjour,

Finalement, j'ai opté pour une solution encore plus simple et qui, même si l'exploitation future sera moins versatile qu'une BDD, me complique moins la tache. Et de toute façon, je n'attends pas des millions de visites /mois sur mon site donc le traitement pourra être fait tranquillement.

J'ai opté pour un script d'écriture dans un fichier. Et j'ai créé une petite fonction pour aller plus vite.
function ecriture($param)
{	
	$fp = fopen("requetesmanquantes.txt","a"); // ouverture du fichier en écriture
	fputs($fp, "\n"); // on va a la ligne
	fputs($fp,"$param"); // on écrit la requête qui n'a pas abouti dans le fichier
	fclose($fp); // on ferme le fichier
}
A la condition où il n'y a aucun résultat, j'affiche un message d'erreur et j'exécute ma fonction.
ecriture($requete);