L'évolution de la recherche sur le site : du tokenisation et des expressions régulières à MongoDB, à la sémantique de l'IA et à mon exploration de solutions multiples
Solution de recherche hybride actuelle : une valeur sûre, mais toujours limitée
Actuellement, mon site web de navigation utilise une solution de recherche hybride, principalement composée de ces trois éléments :
- Tokenisation + expressions régulières : Il s'agit de la méthode de recherche la plus basique. Elle consiste à tokeniser la saisie de l'utilisateur, puis à la faire correspondre aux titres et descriptions des sites web à l'aide d'expressions régulières. Elle est simple, rapide et peu coûteuse, et fonctionne bien pour les recherches basiques par mots-clés. Cependant, elle ne comprend pas la sémantique, ce qui entraîne des interprétations erronées. Par exemple, la recherche de « téléphone Apple » peut faire correspondre une recette contenant le mot « pomme ».
- Recherche de documents MongoDB : MongoDB offre de puissantes capacités de recherche textuelle, que j'utilise pour l'indexation en texte intégral des données des sites web. Par rapport à la simple tokenisation et aux expressions régulières, elle prend en charge des recherches plus complexes et fournit un certain classement par pertinence. Cependant, elle est toujours basée sur la correspondance de mots-clés et ne comprend pas réellement l'intention de l'utilisateur.
- Correspondance de catégories sémantiques de l'IA (modèle DeepSeek) : Pour résoudre le problème de la compréhension sémantique, j'utilise le modèle DeepSeek pour classer les sites web par catégories. Les requêtes des utilisateurs sont également analysées sémantiquement afin de faire correspondre la catégorie la plus pertinente, renvoyant les sites web de cette catégorie. Cela a amélioré la précision, mais ce n'est toujours pas assez granulaire, et le modèle DeepSeek a un coût.
Cette approche hybride est un choix solide pour l'instant, qui équilibre le coût et l'efficacité. Mais à mesure que mon site web se développe et que les attentes des utilisateurs augmentent, je réalise ses limites :
- Mauvaise compréhension sémantique : La correspondance de mots-clés ne parvient pas à saisir la véritable intention des utilisateurs. Par exemple, il est difficile d'obtenir d'excellents résultats pour « quels sont les bons outils de collaboration en ligne ? ».
- Classement des résultats non intelligent : Le classement est souvent basé sur une pertinence simple et non sur ce dont l'utilisateur a réellement besoin.
- Coûts de maintenance plus élevés : Trois systèmes distincts signifient plus de maintenance, ce qui devient plus difficile à mesure que les données augmentent.
Autres solutions explorées : équilibre entre coût et complexité
J'ai envisagé d'autres solutions, mais je ne les ai pas adoptées pour diverses raisons :
- Recherche sémantique dans la base de données : La solution idéale ; elle convertit les données du site web et les recherches des utilisateurs en vecteurs, les faisant correspondre à l'aide de calculs de similarité. Cependant, elle est trop coûteuse en raison des fortes exigences en matière de calcul et de stockage, en particulier pour un petit site web comme le mien.
- Solution intermédiaire : Pour réduire les coûts, j'ai envisagé d'ajouter un champ de vecteur sémantique aux données de mon site web, en utilisant des modèles sémantiques gratuits pour obtenir des vecteurs de descriptions de sites web. Ensuite, lorsqu'un utilisateur effectuerait une recherche, j'obtiendrais un vecteur pour son terme de recherche et je les ferais correspondre. Bien que moins chère, elle nécessitait beaucoup de développement et était difficile à maintenir.
- API de recherche de sites tiers (Algolia) : Ces services sont faciles et professionnels, mais beaucoup trop chers. Le niveau gratuit de 10 000 recherches par mois est insuffisant pour mon site.
Ces explorations m'ont montré que le choix d'une solution de recherche de sites nécessite un équilibre entre le coût, l'efficacité, la complexité et la maintenance. Il s'agit de trouver le point idéal qui convient.
Vision future : base de connaissances de l'IA + recherche sémantique
Bien que ma solution actuelle fasse le travail, j'ai en tête une solution idéale : transformer toutes les données de mon site web en une base de connaissances de l'IA et utiliser la recherche sémantique de l'IA.
Les avantages sont clairs :
- Compréhension sémantique plus forte : L'IA peut comprendre l'intention de l'utilisateur, en fournissant des résultats plus précis.
- Classement plus intelligent : Le classement basé sur l'IA peut mieux trier les résultats en fonction des besoins des utilisateurs et de la qualité du site web.
- Recherche plus flexible : Les utilisateurs peuvent effectuer des recherches comme s'ils parlaient à l'IA, par exemple « trouve-moi un outil gratuit en ligne pour créer des organigrammes ».
- Coûts de maintenance inférieurs : Je n'aurais besoin que de maintenir un modèle d'IA et une base de connaissances.
Mais il y a des défis :
- Construction de la base de connaissances de l'IA : Comment les données des sites web peuvent-elles être efficacement transformées en connaissances compréhensibles par l'IA ?
- Sélection du modèle d'IA : Quel modèle correspond le mieux à mes besoins ?
- Mise en cache de l'IA : Comment les résultats de recherche peuvent-ils être mis en cache efficacement afin d'éviter les calculs redondants ?
Je suis encore en train de découvrir certaines de ces choses, mais je crois que la recherche de sites basée sur l'IA est l'avenir.
Conclusion et perspectives d'avenir
La recherche de sites est une évolution continue, sans solution universelle. Nous devons constamment expérimenter, nous adapter et optimiser.
J'espère que cet article vous fera part de mon parcours et suscitera un débat sur les solutions de recherche de sites. Si vous avez des expériences ou des réflexions à ce sujet, n'hésitez pas à les partager dans les commentaires !
À l'avenir, je continuerai à explorer la recherche de sites basée sur une base de connaissances de l'IA et j'ai hâte d'en partager davantage. Merci de votre lecture !