Un système de recherche sans analytique est un système de recherche que vous ne pouvez pas améliorer. Vous ne savez pas ce que les utilisateurs recherchent, s'ils trouvent ce dont ils ont besoin, ou quelles requêtes retournent des résultats vides. Vous ne pouvez pas identifier les lacunes dans votre contenu, ajuster vos poids de classement ou mesurer l'impact des changements.
Le système de recherche de FLIN inclut une analytique intégrée qui suit chaque requête, chaque ensemble de résultats et chaque interaction utilisateur avec les résultats. Combiné avec une couche de mise en cache intelligente qui élimine les calculs redondants, le système de recherche devient plus rapide et plus intelligent au fil du temps.
Analytique de recherche
Chaque opération de recherche dans FLIN -- que ce soit search, ask ou hybrid_search -- peut optionnellement enregistrer des données analytiques en ajoutant analytics: true dans les options.
Suivi des clics
L'analytique devient précieuse quand vous savez quels résultats les utilisateurs cliquent réellement. Le frontend envoie un événement de clic quand un utilisateur clique sur un résultat de recherche, incluant la position dans la liste des résultats.
Requêtes sans résultat : trouver les lacunes de contenu
La métrique analytique la plus exploitable est celle des requêtes sans résultat. Quand les utilisateurs cherchent quelque chose et n'obtiennent aucun résultat, cela signifie soit que le contenu existe mais n'est pas indexé correctement, soit qu'il n'existe pas et devrait être créé.
Mise en cache des résultats
Les opérations de recherche impliquent la génération d'embeddings, des recherches dans les index et potentiellement des appels IA. La mise en cache élimine les calculs redondants pour les requêtes répétées.
Cache au niveau de la requête
FLIN met en cache les résultats de recherche indexés par la chaîne de requête et les paramètres de recherche. Le cache utilise l'éviction LRU et un TTL configurable (par défaut : 5 minutes pour les résultats de recherche, 1 heure pour les embeddings).
Cache d'embeddings
L'embedding de la requête est mis en cache séparément des résultats de recherche, ce qui est particulièrement précieux pour les interfaces de recherche en temps réel.
Cache d'intentions
Pour les requêtes ask, la traduction IA (le plan de requête) est mise en cache. Les appels répétés passent de 500 ms à 5 ms.
Impact de performance de la mise en cache
| Opération | Sans cache | Avec cache | Amélioration |
|---|---|---|---|
| Recherche sémantique | 15 ms | 3 ms | 5x plus rapide |
| Recherche hybride | 20 ms | 5 ms | 4x plus rapide |
| Requête ask (première) | 500 ms | 500 ms | Pas de changement |
| Requête ask (répétée) | 500 ms | 5 ms | 100x plus rapide |
La pile de recherche complète
Le système de recherche de FLIN, construit au cours des dix derniers articles, comprend :
- Type semantic text -- génération automatique d'embeddings lors de la sauvegarde.
- Index vectoriel HNSW -- recherche rapide de plus proches voisins approximatifs.
- Index inversé BM25 -- correspondance précise de mots-clés.
- Recherche hybride -- classement fusionné avec RRF.
- Reclassement par encodeur croisé -- notation de précision pour le RAG.
- Analyse de documents -- extraction PDF, DOCX, CSV, JSON, YAML.
- Découpage conscient du code -- division intelligente de documents.
- FastEmbed -- génération locale et privée d'embeddings.
- Passerelle IA -- accès LLM multi-fournisseur.
- Analytique et mise en cache -- apprentissage et optimisation.
Tout cela est intégré au runtime FLIN. Pas de services externes. Pas d'infrastructure à gérer. Un développeur écrit search "query" in Entity by field et toute la pile s'active.
Ceci conclut l'arc 11 -- l'IA et le moteur d'intentions de FLIN. Le prochain arc continue le voyage dans la bibliothèque standard et les outils de l'écosystème de FLIN.
Ceci est la partie 125 de la série « Comment nous avons construit FLIN », documentant comment un CEO à Abidjan et un CTO IA ont conçu et construit un langage de programmation à partir de zéro.
Navigation de la série : - [124] Conception d'un langage IA-first - [125] Analytique de recherche et mise en cache des résultats (vous êtes ici) - Prochain arc : bibliothèque standard et écosystème FLIN