Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Dreamgratuit - Philosophie
11 juin 2009

Introduction tutorial moteur de recherche multicritère et full text avec Dreamweaver + PHP/MySQL

Note : Je commence aujourd'hui un tutorial assez ambitieux qui s'étalera sur sept posts (au ryhtme d'un billet par semaine environ). Etant donné le vocabulaire parfois un peu technique de ce billet, vous trouverez un glossaire à la fin de ce post donnant les définitions des mots suivis d'une *.

Ce tutorial a pour but de permettre aux utilisateurs de Dreamweaver d'implémenter un moteur de recherche "full text" (ou plein texte, ou texte entier ou texte intégral) dans un site en combinant la recherche par mots clés à des critères, filtres de résultats.

Que signifie "recherche full text" ?

1244641436_page_preview"Recherche de mots, de phrases ou d'une chaîne de caractères quelconque dans un ensemble de documents, s'appuyant sur une exploration systématique de la totalité de cet ensemble."
Pour ce faire, vous devez impérativement disposer d'une version de MySQL permettant d'activer l'indexation full text, soit la version 4.0.1 ou supérieure (dans mon tutorial, je travaillerai avec la version 5.0.26). L'indexation est en effet le pendant indispensable de la recherche full text. L'indexation consiste pour la base de données à extraire des tables les mots considérés comme significatifs et à constituer un index (sur le principe, identique à celui d'un ouvrage imprimé disponible en général en appendice) lui permettant d'accéder rapidement aux enregistrements contenant ces mots.

Les avantages d'un tel moteur sont évident puisqu'il n'est pas limité à la recherche d'expressions exactes contrairement aux moteurs généralement proposés dans les tutoriaux de réalisation d'interfaces de recherche. Il permet aussi de rechercher sur différents champs de différentes tables.

Ce que ne peut pas faire le moteur dont il va être ici question
  1. Ordonner les résultats suivant un algorithme de pertinence* (vous devrez adapter la présentation de vos résultats selon la problématique spécifique de votre site).
  2. Gérer une liste de mots vides* (nous verrons comment contourner ce problème).
  3. Effectuer des recherches avec lemmatisation*
  4. Proposer un correcteur orthographique lors d'une erreur de saisie utilisateur.

Si vous souhaitez de tels fonctionnels, vous devrez vous tourner vers des solutions payantes telles que Google Mini ou Exalead one:enterprise. Mais vous ne serez plus du tout dans le domaine du gratuit :). Comptez 1 995 € pour Google Mini et plus de 15 000 € pour Exalead one:enterprise (étant entendu qu'Exalead one:enterprise est une solution qui présente des fonctionnalités et des possibilités plus importantes que Google Mini, notamment la possibilité d'intégrer un moteur de recherche verticale* à votre site. Reportez-vous aux descriptifs produits respectifs.).

Ce que fera le moteur de ce tutorial
  1. Il supporte les opérateurs booléens et donc permet de proposer à l'utilisateur des équations de recherche assez "pointues". Exemple : chercher un enregistrement de la base contenant les mots "temps" et "perdu" mais pas "Proust"
  2. Il gère l'accentuation et la casse* (selon votre version de MySQL) : rechercher "événement" est équivalent à la recherche d'"EVENEMENT"
  3. Il gère la troncature* à droite par défaut
  4. L'opérateur inter-mot par défaut sera ET (vous pouvez éventuellement utiliser OU mais je vous le déconseille car ce fonctionnement s'écarte beaucoup trop des fonctionnements des moteurs grands publics)

Le présent tutorial vous permettra donc de construire une page de recherche en base de données et une page de résultats en utilisant Dreamweaver + PHP connecté une base MySQL.

Dans le prochain billet de ce tuto, nous entrerons dans le vif du sujet avec la structure de la base de données et son paramétrage.

Glossaire
Algorithme de pertinence
Méthode de calcul (le plus souvent brevetée) permettant d'attribuer plus ou moins de pertinence à un résultat de requête. Cet algorithme est une des pierres angulaires des moteurs de recherche type Google, Yahoo, etc.
Mots vides
Les mots vides sont les mots du lexique trop communs (le plus souvent sans ajout de sens) pour être indexés. Les articles, prépositions, conjonctions sont des exemples types de mots vides.
Lemmatisation
Le lemme est la forme cannonique d'un mot ou d'une famille de mot. La lemmatisation est l'action de regrouper les différentes formes d'un mot. Exemple : la lemmatisation du verbe conjugué "reviennent" est le verbe à l'infinitif "revenir".
Moteur de recherche verticale
Un moteur de recherche verticale est un moteur de recherche qui ne contient dans son index qu'un nombre fini de sites web, en général déterminés suivant une thématique donnée (exemples de moteurs de recherche verticaux : Search Medica, Trovit, etc.) Antonyme : moteur de recherche généraliste.
Casse
La casse est la distinction lettres majuscules / minuscules. Bas de casse : lettres minuscules.
Troncature
Méthode consistant à tronquer une partie d'un mot afin d'effectuer une recherche sur une partie de ce mot.

Sommaire du tutorial

  1. Introduction : concept de full text
  2. Structure et paramétrage de la base
  3. Création de la page de recherche
  4. Page de résultat : fonctionnement multi-critère
  5. Implémentation du full text
Publicité
Commentaires
J
Merci pour ce superbe post !<br /> <br /> Serait-il possible d'avoir l'ensemble du code source dans un seul fichier ZIP (parce que je n'utilise pas Dreamweaver)<br /> <br /> A+
J
Super Caro, je t'encourage car ça être du très bon code pour tous.
Archives
Publicité
Publicité