moteur de recherche résultat surprenants (je ne comprends pas trop)

led
Eléphanteau du PHP | 23 Messages

11 sept. 2007, 16:49

Bonjour,

J'ai réaliser un moteur de recherche pour un site et j'ai réaliser quelques tests dessus pour voir son comportement. Je devais regarder si le moteur doit ou non faire des recherche sur des champs text mis en index grace a fulltext

La table « search » sera la table de la base de données où le moteur de recherche devra effectuer les recherches.
voici sa structure:
Field Type Null Key Default
NomPage varchar(255)
Titre varchar(255)
Keyword varchar(255)
dtPublication datetime MUL 0000-00-00 00:00:00
Langue tinyint(3) YES NULL
ContenuID int(11) unsigned PRI 0
Categorie tinyint(3) unsigned PRI 0
Type tinyint(3) unsigned 0
Contenu text YES MUL NULL
Emetteur tinyint(3) unsigned YES NULL
Valid tinyint(3) YES NULL
Voici mes tests:

J’ai créé un tableau de 30 cases dans lequel j’ai mis des mots pris au hasard, je l’ai envoyé en paramètre de mon script et j’ai lancé les simulations.

Dans un 1er temps, je ne fais des recherches que sur les champs titre et keyword.

Ma 1ere série de test ne comportera qu’un seul mot de plus de 3 lettres (le moteur de recherche ignore les mots de longueur inférieur ou égale à 2).

Pour ma 2eme série de test, chaque case du tableau comportera plus de 3 mots séparés par des +.

Ma troisième série de test sera la même que la seconde mais la recherche portera également sur le champ contenu de la table « search ».


Le 4eme test va comparer le comportement du moteur de recherche avec un tableau de 50 cases.

Ensuite mon script renvoie dans un tableau excel les données recherchés, le nombre de résultat trouvés et le temps d'exécution du script pour chaque case des tableaux.

J'arrive à un résultat surprenant qui est:
Il semblerait que le moteur de recherche réagisse plutôt bien aux recherches sur le champ contenu. On remarque qu’il trouve plus de résultat en moins de temps. Il serait donc souhaitable de garder les recherches sur ce champs en mettant un fulltext comme index dessus dans notre table.

Avez vous un avis sur la question pour me dire comment cela peut être possible?
merci