← Tous les articles
Mesure · Septembre 2026

Découper une fiche de trois lignes : ce qu'un plongement fait d'une référence technique

Les méthodes de RAG découpent des documents longs. Une fiche de visserie en fait trois lignes, et il n'y a rien à découper. Nous avons mesuré ce qu'un plongement en fait, et ce que notre moteur en fait, sur le même corpus.

Le découpage suppose un document long

La littérature du RAG traite du découpage : longueur fixe, phrase, paragraphe, fenêtre glissante, découpage récursif, hiérarchique, thématique, agentique. Toutes ces stratégies répondent à la même contrainte : un document dépasse la fenêtre de contexte, il faut le couper sans perdre le sens.

Une fiche de catalogue technique ne pose pas ce problème. « Vis TH M8x30 inox A2, DIN 933, boîte de 100 » tient en une ligne. La couper en deux ne produit pas deux unités de sens, elle produit une moitié inutilisable.

Il faut être juste : la question du catalogue n'est pas ignorée par tout le monde. L'article de Meilisearch sur le RAG appliqué aux données structurées prend explicitement la ligne entière comme unité de plongement, et recommande des filtres exacts à côté de la recherche sémantique. Le débat n'est donc pas « faut-il découper une fiche », il est ailleurs : d'où viennent les valeurs de ces filtres exacts, et que vaut la similarité quand le produit voisin ne diffère que par un chiffre.

La mesure

Corpus construit pour l'occasion, pas relevé chez un marchand : 64 fiches de visserie, 4 diamètres (M6, M8, M10, M12), 4 longueurs (16, 30, 50 et 80 mm), 2 nuances d'inox, 2 types de tête. Les fiches sont rédigées en style catalogue, les requêtes en style acheteur, et les deux ne se ressemblent pas :

fiche   : Vis à tête hexagonale M10 x 30 mm, acier inoxydable A2, DIN 933
requête : vis 6 pans m10x30 inox a2

Les requêtes à tête fraisée s'écrivent de la même façon : « vis tete fraisee m10x30 inox a2 ».

Le corpus est construit, et il porte une incohérence qu'un lecteur du métier verra : les fiches à tête fraisée citent DIN 933, qui est une norme de vis à tête hexagonale. Elle fait partie du corpus mesuré et nous la laissons telle quelle. La norme est la même sur les 64 fiches, elle ne départage donc aucune tête ; et corriger le corpus après coup casserait la comparaison entre les deux colonnes du moteur.

Le même corpus est passé deux fois. D'abord dans un plongement multilingue, intfloat/multilingual-e5-small (révision 614241f6, export ONNX, moyenne masquée, préfixes query: et passage:), plus proche voisin par cosinus. Ensuite dans notre moteur, indexé avec le pack de règles outillage et lancé en local sur le code d'un jour donné : le 16 septembre sur le code 7b426c4 (celui alors en ligne, cbfc93d, rend les mêmes nombres), le 17 sur le code 6ee547f, celui que sert la production ce jour-là. Pour chaque requête, on regarde le premier résultat et on compte combien d'attributs il a justes.

Premier résultat, sur 64 requêtesPlongement e5-smallMoteur Heurix, 16 septembreMoteur Heurix, 17 septembre
bon diamètre55 / 6464 / 6464 / 64
bonne longueur64 / 6464 / 6464 / 64
bonne nuance d'inox64 / 6464 / 6464 / 64
bon type de tête62 / 6432 / 6464 / 64
la fiche exacte53 / 6432 / 6464 / 64

Le 16 septembre, aucun des deux ne gagnait partout, et les deux colonnes ne se trompaient pas sur les mêmes choses. Le 17, notre moteur rend 64 sur 64 sur chaque ligne, parce que la règle qui lui manquait a été écrite entre-temps. Les deux colonnes restent affichées : la première dit ce que faisait le moteur quand l'article est paru, la seconde ce qu'il fait depuis. Ce qui les sépare est expliqué plus bas.

Les neuf erreurs du plongement portent sur le chiffre qui décide

Les 9 échecs de diamètre sont concentrés : 8 fois une M10 demandée, une M6 rendue ; une fois une M12 demandée, une M6 rendue. Jamais l'inverse. Voici le classement complet pour « vis 6 pans m10x30 inox a2 » :

0,9085  Vis à tête hexagonale M6 x 30 mm, acier inoxydable A2, DIN 933
0,9076  Vis à tête hexagonale M10 x 30 mm, acier inoxydable A2, DIN 933
0,9063  Vis à tête fraisée M6 x 30 mm, acier inoxydable A2, DIN 933
0,9057  Vis à tête fraisée M10 x 30 mm, acier inoxydable A2, DIN 933
0,9022  Vis à tête hexagonale M12 x 30 mm, acier inoxydable A2, DIN 933

Neuf dix-millièmes séparent la mauvaise vis de la bonne. Pour situer l'échelle : sur les mêmes chaînes, un marteau de charpentier est à 0,84 de la vis M8x30, et une vis qui ne diffère que par son diamètre est à 0,985. Autrement dit, la vis qui n'est pas la bonne est environ dix fois moins loin que le produit sans rapport (0,015 contre 0,16 d'écart au cosinus). Tout se joue dans une marge que n'importe quelle variation de formulation dépasse.

Ce n'est pas un artefact de tokenisation. Le modèle voit bien le nombre, et il le voit entier :

m6x16   →  ['▁m', '6',  'x', '16']
m10x16  →  ['▁m', '10', 'x', '16']

Le « 10 » est présent, distinct, au bon endroit. Le modèle ne l'a pas perdu : il ne lui donne simplement pas le poids qu'il a dans le métier. Une vis trop courte de cinq millimètres traverse la pièce ; pour une mesure de distance apprise sur du texte, cinq millimètres sont un détail de surface.

Ce que notre moteur fait à la place

Le moteur ne calcule pas de distance : il applique au texte des motifs déclarés par secteur, en deux niveaux. Le niveau 1 reconnaît les motifs bruts, le niveau 2 les compose. La même cascade traverse la fiche et la requête.

Vis TH M8x30 inox A2, DIN 933
  → FAM_VIS TETE_HEX DIAM_M8 LONG_30 MAT_INOX NUANCE_A2 NORME_DIN933
  → VIS_M8X30 DIAM_M8_INOX

Écrou H M8 inox A2, DIN 934
  → FAM_ECROU DIAM_M8 MAT_INOX NUANCE_A2 NORME_DIN934
  → DIAM_M8_INOX

C'est un découpage, mais par attribut et non par position. Rien n'est coupé : la longueur est isolée comme une valeur, pas comme un fragment de chaîne. D'où la différence de nature avec le découpage d'un document : une fenêtre glissante choisit où couper, une règle choisit quoi lire. Et une valeur lue est filtrable, comparable, groupable ; un fragment ne l'est pas.

Cela repose sur une condition qu'il faut énoncer : quelqu'un a écrit les règles du secteur. Le diamètre métrique, la longueur après le « x », les normes DIN, ISO et NF, les familles, les types de tête. Sur un catalogue dont le vocabulaire n'est décrit par aucun pack, le moteur ne lit rien de plus qu'un moteur de texte.

Et ce que notre moteur ratait

Deux échecs mesurés le 16 septembre, sur ce même corpus. Les deux sont corrigés dans le moteur en ligne le 17.

« 6 pans » ne figurait pas dans les règles. Le pack reconnaissait « hexagonale », « hex », « th », mais pas la tournure d'atelier « 6 pans ». Sur les 32 requêtes qui l'emploient, rien ne désignait donc la tête, et la fiche à tête fraisée passait devant la bonne les 32 fois : 7 fois à score égal, 25 fois avec un score légèrement supérieur. Le plongement, lui, rapproche « 6 pans » de « tête hexagonale » sans qu'on lui ait rien déclaré : 62 sur 64.

La règle a été écrite le soir du 16 septembre : « 6 pans » et « six pans » posent désormais l'annotation de tête hexagonale, et les 32 requêtes rendent la bonne fiche en tête. Ce 64 sur 64 est mesuré sur le corpus qui a montré le manque. Il prouve que ce manque est comblé, pas que le pack connaît désormais toutes les tournures d'atelier. La différence de nature, elle, reste : la similarité a traité « 6 pans » sans qu'on lui déclare rien, la règle ne l'a su qu'une fois écrite, et parce qu'une mesure avait montré qu'elle manquait.

La nuance d'inox n'était pas isolée comme attribut. « inox », « A2 » et « A4 » produisaient tous la même annotation de matière. Les deux nuances restaient séparables par le mot lui-même, ce qui suffisait au classement de ce corpus, mais la nuance n'existait pas comme valeur : elle n'était ni filtrable, ni utilisable en facette. Sur un catalogue réel où d'autres signaux pèsent, cela se voyait dans l'ordre des résultats. C'était une limite de notre pack, pas une propriété de la méthode.

Depuis le 17 septembre, le pack pose une annotation de nuance, A2 ou A4, à côté de celle de matière. Sur ce corpus, la facette de nuance compte 32 fiches de chaque côté, et le filtre A4 rend les 32 fiches A4, et elles seules. Le tableau n'en bouge pas : la nuance était déjà juste 64 fois sur 64. Une nuance écrite seule, « A4 » sans « inox », n'est pas lue comme une nuance, parce que « format A4 » s'écrit de la même façon.

Où la frontière passe

Rien de ce qui précède ne dit que le RAG est inutile. Il dit que retrouver une référence n'est pas la tâche pour laquelle il a été conçu.

Le découpage et le plongement serventLes règles servent
Une notice, une fiche technique en PDF, un manuel de montage : des documents longs, qu'il faut bien couper.Une fiche de trois lignes, où chaque jeton est une valeur.
Une question en langage naturel : « quelle vis pour fixer une terrasse en bord de mer ? »Une requête qui est déjà une spécification : « vis th m8x30 a4 ».
Le vocabulaire qu'aucune règle n'a encore prévu. « 6 pans » en faisait partie jusqu'au 17 septembre : il a fallu une mesure pour le voir, et une règle pour le lire.La valeur qui décide : un diamètre, une longueur, une norme, un suffixe.

La composition utile se lit dans le tableau : le plongement pour la formulation, les règles pour les valeurs. Une question en langage naturel doit finir par retomber sur des attributs exacts, sinon elle rend un produit voisin et plausible. « Bord de mer » veut dire A4, et c'est une valeur, pas une ambiance.

Le test que vous pouvez refaire

Prenez deux fiches de votre catalogue qui ne diffèrent que par la valeur qui décide : deux longueurs, deux diamètres, deux suffixes d'étanchéité. Interrogez votre moteur avec la première. Regardez le rang de la seconde, et surtout l'écart de score entre les deux. Si cet écart est de l'ordre du millième quand un produit sans rapport est dix fois plus loin, votre classement se joue sur du bruit.

Les chiffres de cet article valent pour ce modèle, ce corpus construit, et notre moteur au jour indiqué dans chaque colonne. Un autre modèle de plongement donnerait d'autres nombres ; la question, elle, se repose à l'identique. Sur le principe, l'article pourquoi la recherche vectorielle échoue sur les catalogues techniques explique ce que fait un moteur vectoriel et sur quels catalogues il convient. Celui-ci le mesure. Le fonctionnement de la cascade est détaillé dans ce que votre moteur a compris, et pourquoi il vous le montre.

Mis à jour le 17 septembre 2026. Publié le 16, cet article mesurait notre moteur à 32 sur 64 pour le type de tête et pour la fiche exacte, faute de règle pour « 6 pans », et disait la nuance d'inox non isolée comme attribut. Les deux limites ont été corrigées dans le moteur. Il disait aussi que ces 32 requêtes tombaient à égalité et se départageaient au hasard ; remesuré, l'égalité ne vaut que 7 fois, et la fiche à tête fraisée passait devant les 32 fois. La colonne du 16 septembre est gardée, celle du 17 est ajoutée, mesurée sur le même corpus avec le même protocole ; le plongement, inchangé, a été repassé et rend les mêmes nombres. Le bloc d'annotations montre désormais la nuance, et la ligne de l'écrou son annotation de niveau 2, qu'elle omettait. Le protocole dit désormais les longueurs, la forme des requêtes à tête fraisée, et une incohérence du corpus, laissée telle quelle.

Essai gratuit 14 jours

Testez Heurix sur votre catalogue, sans carte bancaire.

Démarrer l'essai gratuit