Bonjour,
Je cherche à developpé (ou intégré) un moteur de recherche basé sur une infrastucture PHP / MySQL.
Le système en place pour le moment utilise des indexs FULL-TEXT sur différents champs.
Un cron se charge de regrouper tout ces indexes pertinent pour une recherche (nom,auteur et descritipion) dans un même champ afin d'accélérer le requêtage.
Enfin, le moteur requête sur ce champ et retourne une liste de résultat trié par pertinence.
Cependant, ce système montre ses limites:
Le mot Lirve ne matchera pas sur le mot Livre.
Les pluriels et les abréviation ne match pas.
Le scalling en taille risque d'être assez mauvais, le site ayant pour objectif de contenir des dixaines voir centaines de milliers d'articles.
Enfin, la pertinence n'est pas toujours excellente sur les recherches.
Je cherche donc un moyen d'améliorer cette fonction de recherche.
Etant donné que les fonctionnalités que je tente de menttre en place sont assez poussés, je pensais me tourner vers une librairie déjà existante.
Le problème est que je n'ais trouvé uniquement que des moteur de recherche couplé à des crawler, qui vont crawler mon site puis indexer le contenu dans des fichiers et faire leur petite popote pour me retourner les résultats par la suite.
Je cherche plutôt pour ma part un moteur qui viendrait se greffer sur ma BDD en requêtant un ou plusieurs champs, car il me semble inutile et coûteux aussi bien en terme de place que de pertinance d'allez crawler des pages dont les seules éléments importants à rechercher sont définis dans un nombre finis de champs en BDD.
Je me suis intérressé à certains moteur et plus particulièrement à Lucène qui semble extrèmement performant (du niveau d'un petit Google et OpenSource).
Cependant après avoir parcourut différents posts et docs à son sujet il me semble que ce dernier crawl les informations pour les requêter par la suite, ce qui ne m'interresse pas à prioris.
Suis-je sur une mauvais piste en tentant de trouver un moteur de recherche performant se greffant sur une BDD ? Faut il plutôt tenter d'intégrer un crawler/search engine complet quitte à consommer de la ressource inutilement en indexant du contenu non pertinant et/ou déjà existant en BDD ?
Merci d'avance![]()
Partager