8797 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Bon, plus pour le feune d'apprendre que l'intérêt réel d'un moteur de recherche sur mon site sans contenu, j'aimerais savoir si il y a des choses précises à connaître pour faire un beau moteur de recherche. Dison plutôt bon que beau!

Pour détailler un peu, je vois un peu près (très très très vaguement) comment se passe ce genre de requête sans connaître pour autant car je n'est jamais réalisé un tel ouvrage d'art. Smiley smile

Je voulais donc savoir si vous aviez quelques conseils pour m'aider à bien démarrer...

Je me pose cependant deux petites questions très basique :
1. Créer le moteur de recherche sur une page recherche.php et l'inclure dans le fichier index.php. Cela peut-il poser des problèmes (sécurité ou autres)? Je suppose que non mais je préfère demander.
2. Peut-on faire une recherche dans un texte situé dans un fichier type contenu.php ou il faut absolument que toute les informations se trouvent dans une base de donnés?
3. Enfin avez-vous des liens un peu informel, genre autre que le site du zero, php.net, et bien sûr alsacréations? Histoire que je me documente pour réaliser se gadget...

Merci beaucoup d'avance Smiley smile
Hello Dim,

Dim a écrit :
Bon, plus pour le feune d'apprendre
Même en français on dit plutôt fun. Smiley smile

Dim a écrit :
1. Créer le moteur de recherche sur une page recherche.php et l'inclure dans le fichier index.php. Cela peut-il poser des problèmes (sécurité ou autres)? Je suppose que non mais je préfère demander.
Pas de problème particulier.

Dim a écrit :
2. Peut-on faire une recherche dans un texte situé dans un fichier type contenu.php ou il faut absolument que toute les informations se trouvent dans une base de donnés?
On peut mais le traitement sera toujours bien plus lourd qu'une requête SQL (avec ou sans index FULLTEXT). En même temps si le contenu du site se trouve dans des pages .html ou .php c'est qu'à priori on a affaire à peu de pages.
Dans ce cas il devrait suffire de :
* récupérer 1 par 1 chaque page du répertoire de contenu (donc si ça n'est pas encore le cas ce répertoire ne devrait contenir que les pages de contenus à inclure). Ceci à l'aide de file_get_contents.
* rechercher le ou les mot(s) à l'aide de preg_match (en supprimant au préalable les balises html à l'aide de strip_tags).
* pour chaque résultat positif écrire un lien vers la page (le problème dans ce cas est de renseigner un libellé mais comme chaque document devrait contenir un titre il suffit de le récupérer avec preg_match).

Dim a écrit :
3. Enfin avez-vous des liens un peu informel, genre autre que le site du zero, php.net, et bien sûr alsacréations?
Non. Smiley hmm

Mais sur Alsa il devrait quand même être possible de trouver des infos intéressantes.
Modifié par Heyoan (07 Jun 2009 - 01:35)
Hello Heyoan,

Heyoan a écrit :
Même en français on dit plutôt fun. smile

euuu oui Smiley confused .... Ca c'est mon gros problème (l'orthographe) Smiley bawling

Sinon, en faite si je veux pouvoir faire la recherche dans autre chose que ma base de données c'est par ce que la capacité maximum de ma base est de 20Mo. Du coup, pour pas la remplir trop rapidement je voulais mettre l'adresse ou se trouve le texte d'un article plutôt que de mettre le texte de l'article directement dans la base de données. Je sais pas si je fait beaucoup d'économie de place de cette manière mais je pense que oui puisque au lieu d'avoir 50lignes dans ma base de données j'en aurais seulement 1.

Heyoan a écrit :
(donc si ça n'est pas encore le cas ce répertoire ne devrait contenir que les pages de contenus à inclure
C'est pas encore fait mais je pensais bien faire comme ça. Smiley smile

Merci encore et toujours. Merci pour les liens... mais grâce à ton petit cours sur les mots clé j'avais trouvé ce que je voulais sur alsa (Je veux le même magnifique moteur de recherche Smiley langue )
Re',

eh bien tout est relatif mais 20 Mo ça fait déjà pas mal de contenu !

Sinon je proposais une méthode dans ce post (la seconde).

Et autresinon il y a toujours la technique de Google en ciblant son site avec site:example.com mots clés. Cela donne par exemple ces résultats.
Re, re et re Smiley murf

20mo c'est déjà pas mal? Bon dans ce cas alors je vais pas m'embêter à séparer le texte de la base de donnée... Ca facilitera un peu mon script php pour ma recherche.
Cependant j'hésite encore sur l'intérêt de faire une recherche sur le contenu plutôt que sur des tags que j'aurais préalablement désignés. Car si la recherche se fait seulement sur les tags et les titres par exemple, cela ciblera plus facilement les articles. Peut être qu'avec votre expérience vous allez me dire le contraire... ?

Heyoan a écrit :
soit je parse le contenu au moment de l'insert/update et pour chaque mot je crée un enregistrement dans une table recherche (mot, lien_vers_la_page, note) dont la note vaut 1 ou plus si le mot était dans un titre. C'est un peu lourd mais comme ce n'est fait qu'une fois (par insert/update) la recherche est elle-même très rapide et permet également de trier en fonction de la "pertinence".

J'espère que tu excusera mon inintelligence mais je comprend très vaguement l'idée et encore moins comment c'est possible Smiley confuse Ce que j'ai cru comprendre c'est que tu met des notes à tes pages? Elles sont pas très élevés d'ailleurs. Tu n'est vraiment pas sympa envers toi même. Smiley cligne

Pour finir, je comprend l'intérêt du site:example.com mots clés. Et si je comprend bien, l'idée serait que dans le script php de ma recherche j'intègre le nom de mon site devant les mots clés rentrés par le visiteur. Comme ça la recherche se fait sur mon site en entier..? Du coup plus besoin de faire la recherche sur les pages or de ma base de données.
C'est pas un peu long pour la recherche ce genre de méthode?

Bon je vais m'attaquer à ça cette semaine, peut être même aujourd'hui car le temps anglais à décidé d'être typiquement anglais Smiley fache .

Au passage j'ai trouvé ce script qui, je trouve explique bien l'idée de base d'une recherche:
Site du zero/realiser-un-moteur-de-recherche-pour-son-site
Critiqué pas, il est pas parfais (sécurité, like au lieu de fulltext comme tout le monde dit,...), je sais Smiley lol Mais bon c'est un début pour me remettre en jambe avec php, sql et tout le bor***.

Merci encore Heyoan. Smiley ravi