[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:fr":3,"public-menus:all":38,"post:vector-databases-embeddings-and-reranking-three-different-parts-of-retrieval:fr":205,"related:post:vector-databases-embeddings-and-reranking-three-different-parts-of-retrieval:fr:1":2653},{"statusCode":4,"data":5,"message":37},200,{"tenantId":6,"lang":7,"defaultLang":8,"siteUrl":9,"contactEmail":10,"brandName":11,"logoUrl":12,"siteName":11,"siteDescription":13,"ogImage":10,"robotsIndex":14,"socialLinks":10,"reservedSlugs":10,"seoPolicy":15},"stajic","fr","de","https:\u002F\u002Fstajic.de",null,"Stajic Platform","\u002FLogo_Planet.svg","Stajic Portal",true,{"branding":16,"relatedContent":17,"crossDomainLinks":18},{"logoUrl":12},{"enabled":14},[19,22,25,28,31,34],{"url":20,"label":21,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Ffigure.rocks","figure.rocks",{"url":23,"label":24,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Floving.rocks","loving.rocks",{"url":26,"label":27,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.com","bazify.com",{"url":29,"label":30,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.de","bazify.de",{"url":32,"label":33,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.at","bazify.at",{"url":35,"label":36,"isActive":14,"showInFooter":14,"includeInSameAs":14},"https:\u002F\u002Fbazify.ba","bazify.ba","Portal settings resolved",[39,45],{"id":40,"name":41,"location":42,"isActive":14,"isDefault":43,"items":44},1,"main-navigation","header",false,[],{"id":46,"name":47,"location":48,"isActive":14,"isDefault":14,"items":49},4,"main-menu","sidebar",[50,66,79,93,103,118,133],{"id":51,"title":52,"url":60,"target":61,"icon":62,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":64,"portfolioId":10,"children":65},"item-18",{"de":53,"en":54,"es":55,"fr":56,"it":54,"ru":57,"sr":58,"zh":59},"Startseite","Home","Inicio","Accueil","Главная","Почетна","首页","\u002Ffull-stack-web-developer-munich-performance-seo-and-maintainable-builds","_self","i-lucide-home","page",111,[],{"id":67,"title":68,"url":75,"target":61,"icon":76,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":77,"portfolioId":10,"children":78},"item-22",{"de":69,"en":69,"es":70,"fr":69,"it":71,"ru":72,"sr":73,"zh":74},"Vision","Visión","Visione","Видение","Визија","想象","\u002Fueber-uns-webdesign-muenchen-webaplikation","i-lucide-eye",113,[],{"id":80,"title":81,"url":89,"target":61,"icon":90,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":91,"portfolioId":10,"children":92},"item-19",{"de":82,"en":83,"es":84,"fr":83,"it":85,"ru":86,"sr":87,"zh":88},"Leistungen","Services","Servicios","Servizi","Услуги","Услуге","服务","\u002Fservices-dienstleistungen-muenchen","i-lucide-wrench",116,[],{"id":94,"title":95,"url":99,"target":61,"icon":100,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":101,"portfolioId":10,"children":102},"item-23",{"de":96,"en":96,"es":96,"fr":96,"it":96,"ru":97,"sr":97,"zh":98},"Blog","Блог","博客","\u002Fblog","i-lucide-book-open",112,[],{"id":104,"title":105,"url":114,"target":61,"icon":115,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":116,"portfolioId":10,"children":117},"item-32",{"de":106,"en":107,"es":108,"fr":109,"it":110,"ru":111,"sr":112,"zh":113},"Neue Technologien","New Technologies","Nuevas tecnologías","Nouvelles technologies","Nuove tecnologie","Новые технологии","Нове технологије","新技术！","\u002Fneue-webtechnologien","i-lucide-sparkles",122,[],{"id":119,"title":120,"url":129,"target":61,"icon":130,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":131,"portfolioId":10,"children":132},"item-20",{"de":121,"en":122,"es":123,"fr":124,"it":125,"ru":126,"sr":127,"zh":128},"Kontakt","Contact us!","Contacto","Contact","Contatto","Контакт","Контактирајте нас","联系我们！","\u002Fcontact","i-lucide-mail",115,[],{"id":134,"title":135,"url":144,"target":61,"icon":145,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":147},"item-21",{"de":136,"en":137,"es":138,"fr":139,"it":140,"ru":141,"sr":142,"zh":143},"Unsere Arbeit","Our Work","Nuestro trabajo","Nos réalisations","I nostri lavori","Наши работы","Наши радови","文件夹","\u002Fportfolio","i-lucide-briefcase",114,[148,161,175,181,193],{"id":149,"title":150,"url":144,"target":61,"icon":159,"isActive":14,"type":63,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":146,"portfolioId":10,"children":160},"item-24",{"de":151,"en":152,"es":153,"fr":154,"it":155,"ru":156,"sr":157,"zh":158},"Alle Projekte","All Projects","Todos los proyectos","Tous les projets","Tutti i progetti","Все проекты","Сви пројекти","所有项目","i-lucide-grid-3x3",[],{"id":162,"title":163,"url":171,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":174},"item-29",{"de":164,"en":165,"es":166,"fr":167,"it":168,"ru":169,"sr":170,"zh":143},"Local Roots, Global Reach","Local Roots - Global Reach","Empresa local ","Entreprise locale","Azienda locale","Местная компания","Локално предузеће глобално тржиште","\u002Fportfolio\u002Flocal-roots-global-reach-communication-media-systems-for-modern-business","i-lucide-folder","custom",[],{"id":176,"title":177,"url":179,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":180},"item-28",{"de":178,"en":178,"es":178,"fr":178,"it":178,"ru":178,"sr":178,"zh":178},"Solr Suggester","\u002Fportfolio\u002Fsolr-fuzzy-suggester-und-solr-infix-suggester-abfrage-ueber-ajax-und-filterung",[],{"id":182,"title":183,"url":191,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":192},"item-27",{"de":184,"en":185,"es":186,"fr":187,"it":188,"ru":189,"sr":190,"zh":185},"Firmenwebseite SEO","Company Website SEO","Sitio web corporativo SEO","Site web d’entreprise SEO","Sito web aziendale SEO","Корпоративный сайт SEO","Пословна веб-страница SEO","\u002Fportfolio\u002Fseo-sem-branding-mobile-webseite-muenchen",[],{"id":194,"title":195,"url":203,"target":61,"icon":172,"isActive":14,"type":173,"productId":10,"categoryId":10,"shopCategoryId":10,"articleId":10,"pageId":10,"portfolioId":10,"children":204},"item-31",{"de":196,"en":197,"es":198,"fr":199,"it":200,"ru":201,"sr":202,"zh":197},"Digitalisierungsportal","Digitalization Portal","Portal de digitalización","Portail de numérisation","Portale di digitalizzazione","Портал цифровизации","Портал за дигитализацију","\u002Fportfolio\u002Fdigitalisierungsportal-archiv-museum-bibliothek-ead-lido-mets-mods",[],{"statusCode":4,"data":206,"message":2652},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":1252,"featuredImage":1253,"featuredImageAlt":1254,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":1255,"publishedAt":1256,"createdAt":1257,"updatedAt":1258,"seoLocalePaths":1259,"categories":1268,"author":1281,"translations":1286},"487","Bases de données vectorielles, plongements et reclassement : trois parties distinctes de la recherche","vector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u003Cp>Les embeddings, les bases de données vectorielles et les rerankers sont trois parties différentes de la recherche d'information. Un modèle d'embedding convertit du texte ou d'autres données en représentations numériques ; une base de données vectorielle ou un index vectoriel stocke et recherche ces représentations pour récupérer des éléments candidats ; un reranker prend un ensemble de candidats plus restreint et le réordonne à l'aide d'un modèle de pertinence ou d'une méthode de scoring plus coûteuse. Ils apparaissent souvent ensemble dans le RAG, mais aucun d'entre eux n'est identique au RAG, et aucun n'est obligatoire dans tous les systèmes de recherche d'information.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--info my-6 rounded-xl border p-5 border-blue-300 bg-blue-50 dark:border-blue-900 dark:bg-blue-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Réponse directe\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>Les embeddings représentent. La recherche vectorielle récupère. Le reranking affine.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Un modèle mental utile est :\u003Cbr>\u003Cstrong>contenu → embedding → récupération de candidats → reranking → contexte sélectionné → modèle\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>Les frontières importent parce que chaque couche échoue différemment. De mauvais embeddings déforment la similarité sémantique. Un index de recherche faible manque des candidats utiles. Un reranker peut réordonner les candidats, mais il ne peut pas récupérer un document pertinent qui n&#39;a jamais été récupéré.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Ne pas réduire la pile de recherche d&#39;information\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Une base de données vectorielle n&#39;est pas un modèle d&#39;embedding. Un embedding n&#39;est pas un résultat de recherche. Un reranker n&#39;est pas une base de données vectorielle. Le RAG est le modèle plus large qui peut utiliser n&#39;importe lequel de ces composants pour récupérer des informations externes avant la génération.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Note sur les sources actuelles — 8 octobre 2026\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">L&#39;architecture de base est stable même si les produits évoluent rapidement. La documentation actuelle de Qdrant distingue les vecteurs, les métadonnées de payload, les collections et les index vectoriels ; les recommandations actuelles d&#39;Elastic traitent le reranking sémantique comme une opération de stade ultérieur sur un petit ensemble de candidats ; la documentation actuelle de Cohere décrit également le reranking comme une amélioration de second stade par rapport à la recherche lexicale ou sémantique.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Sommaire\">\u003Cstrong class=\"editorjs-toc__title\">Sommaire\u003C\u002Fstrong>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-0\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-6\" class=\"editorjs-toc__link\">Ce que cela signifie vraiment\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-10\" class=\"editorjs-toc__link\">L&#39;exemple le plus simple\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">Où l&#39;exemple simple s&#39;arrête\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-20\" class=\"editorjs-toc__link\">Embeddings : représentation, pas récupération\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-24\" class=\"editorjs-toc__link\">Le modèle d&#39;embedding définit l&#39;espace de représentation\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-27\" class=\"editorjs-toc__link\">Les représentations denses et creuses sont différentes\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-30\" class=\"editorjs-toc__link\">Les fonctions de similarité font partie du contrat de représentation\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-34\" class=\"editorjs-toc__link\">Bases de données vectorielles et index : récupération de candidats\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-38\" class=\"editorjs-toc__link\">La recherche approximative du plus proche voisin échange l&#39;exactitude contre l&#39;efficacité\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-42\" class=\"editorjs-toc__link\">Le filtrage des métadonnées intervient avant ou pendant la récupération des candidats\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-45\" class=\"editorjs-toc__link\">Une base de données vectorielle est facultative\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">Reclassement : affinement de la pertinence en deuxième étape\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-52\" class=\"editorjs-toc__link\">La récupération par bi-encodeur et le reclassement par cross-encodeur résolvent des problèmes de coût différents\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-54\" class=\"editorjs-toc__link\">Un reclassificateur ne peut pas récupérer ce que la récupération a manqué\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">La recherche hybride est un choix de conception distinct\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-62\" class=\"editorjs-toc__link\">BM25 n&#39;est pas obsolète parce que les embeddings existent\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-65\" class=\"editorjs-toc__link\">Le découpage modifie ce que les embeddings et les rerankers peuvent voir\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-68\" class=\"editorjs-toc__link\">Ne comparez pas les scores de recherche comme s&#39;il s&#39;agissait de probabilités universelles\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-71\" class=\"editorjs-toc__link\">Évaluer les étapes de recherche séparément\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-74\" class=\"editorjs-toc__link\">Quelle couche a réellement échoué ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-76\" class=\"editorjs-toc__link\">Pertinence et Source de Vérité sont différentes\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-80\" class=\"editorjs-toc__link\">Preuves d&#39;implémentation originales\u003C\u002Fa>\u003Col class=\"editorjs-toc__list editorjs-toc__list--depth-1\">\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-81\" class=\"editorjs-toc__link\">Moteur de Recherche de Source de Vérité : la récupération lexicale et sémantique sont séparées\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-85\" class=\"editorjs-toc__link\">Client IA Aaasaasa : Qdrant est un composant d&#39;infrastructure vectorielle\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-91\" class=\"editorjs-toc__link\">Quand avez-vous besoin de chaque composant ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-93\" class=\"editorjs-toc__link\">Une séquence pratique de conception de la récupération\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-95\" class=\"editorjs-toc__link\">Idées fausses courantes\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-97\" class=\"editorjs-toc__link\">Cas limites et limitations\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-103\" class=\"editorjs-toc__link\">Qu&#39;est-ce qui changerait cette réponse ?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-107\" class=\"editorjs-toc__link\">Connaissances canoniques associées\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-113\" class=\"editorjs-toc__link\">Questions fréquentes\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-115\" class=\"editorjs-toc__link\">Glossaire\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-117\" class=\"editorjs-toc__link\">Conclusion\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-121\" class=\"editorjs-toc__link\">Sources primaires et preuves de mise en œuvre\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Ch2 id=\"section-6\">Ce que cela signifie vraiment\u003C\u002Fh2>\n\u003Cp>Les systèmes de recherche ont deux objectifs concurrents : trouver suffisamment de matériel potentiellement pertinent et placer le meilleur matériel près du sommet. La récupération rapide de premier stade optimise généralement la génération de candidats. Un modèle de second stade plus puissant peut ensuite consacrer plus de calcul à distinguer les meilleurs candidats.\u003C\u002Fp>\n\u003Cp>Les embeddings, les index vectoriels et les rerankers occupent différentes positions dans ce processus. Les traiter comme une seule fonctionnalité masque des choix de conception importants concernant le rappel, la précision, la latence, le stockage, le filtrage des métadonnées et le coût du modèle.\u003C\u002Fp>\n\u003Cp>La distinction évite également une erreur courante du RAG : supposer que stocker des embeddings de documents dans une base de données vectorielle crée automatiquement une recherche de haute qualité. La qualité de la recherche dépend du modèle d'embedding, du découpage, des métadonnées, de la construction de la requête, de la configuration de l'index, du nombre de candidats, de la recherche hybride, du reranking et de l'autorité des sources sous-jacentes.\u003C\u002Fp>\n\u003Ch2 id=\"section-10\">L'exemple le plus simple\u003C\u002Fh2>\n\u003Cp>Supposons qu'une base de connaissances contienne 100 000 segments de documents. Un utilisateur demande : « Comment révoquer un jeton d'API ? »\u003C\u002Fp>\n\u003Cp>D'abord, un modèle d'embedding peut encoder la requête en un vecteur. Les segments de documents peuvent déjà avoir leurs propres embeddings stockés. Une recherche vectorielle compare ensuite le vecteur de requête aux vecteurs de documents indexés et renvoie, par exemple, 30 candidats probables.\u003C\u002Fp>\n\u003Cp>Ces 30 candidats peuvent ensuite être transmis à un reranker. Le reranker compare la requête plus directement à chaque candidat et produit un nouvel ordre de pertinence. L'application peut conserver les cinq meilleurs pour le contexte du modèle.\u003C\u002Fp>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Un pipeline de recherche sémantique de base à deux stades\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Encoder les documents\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Convertir chaque segment recherchable en une représentation numérique, généralement au moment de l'ingestion.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Stocker\u002Findexer les vecteurs\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Associer les vecteurs à des identifiants de documents et à des métadonnées dans un index ou une base de données vectorielle interrogeable.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Encoder la requête\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Encoder la requête de l'utilisateur à l'aide du modèle d'embedding compatible et de la configuration de requête.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Récupérer les candidats\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Exécuter une recherche de similarité vectorielle, souvent avec des filtres de métadonnées, pour produire un ensemble de candidats top-k plus large.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Reranker les candidats\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Appliquer un modèle de pertinence plus puissant à la requête et au petit ensemble de candidats.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Sélectionner le contexte\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Conserver les passages les plus utiles pour la réponse en aval, l'étape de l'agent ou le résultat de recherche.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-15\">Où l'exemple simple s'arrête\u003C\u002Fh2>\n\u003Cp>Les systèmes de recherche réels ne sont pas obligés d'utiliser des embeddings denses. La recherche par mots-clés telle que BM25 peut être le récupérateur de premier stade. La récupération apprise creuse, les filtres SQL, le parcours de graphe ou les API applicatives peuvent également générer des candidats.\u003C\u002Fp>\n\u003Cp>Un reranker ne se soucie pas non plus que les candidats proviennent d'une base de données vectorielle. Il peut reranker des résultats BM25, des résultats hybrides, des documents sélectionnés manuellement ou des candidats provenant de plusieurs récupérateurs.\u003C\u002Fp>\n\u003Cp>De même, les embeddings ne nécessitent pas de base de données vectorielle spécialisée. Les petits jeux de données peuvent être comparés en mémoire ou avec des bases de données généralistes et des extensions vectorielles. Les systèmes vectoriels spécialisés deviennent utiles lorsque l'indexation, la recherche approximative des plus proches voisins, le filtrage, l'échelle, le comportement de mise à jour ou les exigences opérationnelles les justifient.\u003C\u002Fp>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Trois composants de récupération différents\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Embedding\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Base de données vectorielle \u002F index\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Reranker\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Tâche principale\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Entrée typique\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Sortie typique\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Profil de coût\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Défaillance typique\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-20\">Embeddings : représentation, pas récupération\u003C\u002Fh2>\n\u003Cp>Un embedding est une représentation numérique produite par un modèle. Pour la récupération sémantique, les textes ayant une signification liée sont censés occuper des positions utiles dans un espace vectoriel afin qu'une fonction de similarité ou de distance puisse les comparer.\u003C\u002Fp>\n\u003Cp>Sentence-BERT a été une étape influente pour rendre la similarité sémantique au niveau des phrases pratique avec des représentations de style bi-encodeur qui peuvent être calculées indépendamment et comparées efficacement. L'idée générale reste centrale pour la récupération dense moderne : précalculer les représentations des documents, calculer la représentation de la requête au moment de la recherche, puis les comparer.\u003C\u002Fp>\n\u003Cp>L'embedding lui-même ne recherche pas dans un corpus. C'est une donnée produite par un modèle d'embedding. La récupération commence lorsque le système compare la représentation de la requête aux candidats stockés.\u003C\u002Fp>\n\u003Ch3 id=\"section-24\">Le modèle d'embedding définit l'espace de représentation\u003C\u002Fh3>\n\u003Cp>Les vecteurs de documents et de requêtes doivent être compatibles avec le modèle et la configuration utilisés pour les créer. Remplacer un modèle d'embedding peut modifier la dimensionnalité, le comportement de similarité, la couverture linguistique et les performances du domaine.\u003C\u002Fp>\n\u003Cp>C'est pourquoi une migration de modèle d'embedding n'est pas simplement un changement de nom d'API. Les documents existants peuvent devoir être ré-embeddés et l'index reconstruit ou versionné.\u003C\u002Fp>\n\u003Ch3 id=\"section-27\">Les représentations denses et creuses sont différentes\u003C\u002Fh3>\n\u003Cp>Les embeddings denses contiennent généralement de nombreuses dimensions non nulles et sont couramment utilisés pour la similarité sémantique. Les représentations creuses contiennent de nombreux zéros et peuvent préserver une structure plus forte de type token ou terme.\u003C\u002Fp>\n\u003Cp>Les deux peuvent prendre en charge la récupération sémantique, et les systèmes de recherche modernes peuvent combiner des signaux denses, creux et lexicaux. « Recherche vectorielle » ne signifie donc pas toujours un seul pipeline de similarité cosinus dense.\u003C\u002Fp>\n\u003Ch3 id=\"section-30\">Les fonctions de similarité font partie du contrat de représentation\u003C\u002Fh3>\n\u003Cp>La similarité cosinus, le produit scalaire et la distance euclidienne ne signifient pas la même chose. La métrique correcte dépend de la façon dont le modèle d'embedding a été entraîné et normalisé.\u003C\u002Fp>\n\u003Cp>La documentation actuelle de Qdrant, par exemple, exige une métrique de distance dans le cadre de la configuration vectorielle et documente les choix de type cosinus, produit scalaire et euclidien. La règle architecturale importante est de traiter la métrique comme faisant partie du contrat d'embedding\u002Findex plutôt que d'en choisir une arbitrairement.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">La similarité d&#39;embedding n&#39;est pas un support factuel\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Deux passages peuvent être sémantiquement proches alors que l&#39;un est obsolète, non autorisé ou erroné. Les embeddings estiment la similarité de représentation ; ils ne déterminent pas l&#39;autorité de la Source de Vérité, la fraîcheur ou la validité probante.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-34\">Bases de données vectorielles et index : récupération de candidats\u003C\u002Fh2>\n\u003Cp>Une base de données vectorielle ou un système de recherche compatible avec les vecteurs organise les représentations vectorielles afin que l'application puisse récupérer efficacement les candidats proches. Les systèmes pratiques associent généralement les vecteurs à des identifiants et à des métadonnées de charge utile telles que la source, la langue, le locataire, le type de document, l'horodatage ou la portée d'accès.\u003C\u002Fp>\n\u003Cp>Qdrant, par exemple, organise les données en collections de points où un point contient un vecteur et des métadonnées de charge utile facultatives. Sa documentation décrit la recherche de similarité basée sur HNSW et le filtrage des métadonnées comme des capacités distinctes de la couche de récupération.\u003C\u002Fp>\n\u003Cp>Cette distinction est importante : l'index vectoriel répond à un problème de plus proche voisin, tandis que les filtres de charge utile imposent des contraintes structurelles telles que le locataire, la classe de document ou la langue.\u003C\u002Fp>\n\u003Ch3 id=\"section-38\">La recherche approximative du plus proche voisin échange l'exactitude contre l'efficacité\u003C\u002Fh3>\n\u003Cp>Comparer un vecteur de requête à chaque vecteur peut être pratique pour de petites collections mais coûteux à grande échelle. Les index approximatifs du plus proche voisin tels que HNSW réduisent le coût de recherche en naviguant dans une structure d'index au lieu de scanner exhaustivement chaque vecteur.\u003C\u002Fp>\n\u003Cp>La recherche approximative introduit un compromis rappel\u002Flatence. Une recherche plus rapide peut manquer des candidats que la recherche exacte renverrait. Les paramètres d'index affectent donc la qualité de la récupération, pas seulement les performances de l'infrastructure.\u003C\u002Fp>\n\u003Cp>Qdrant expose à la fois les paramètres liés à HNSW et une option de recherche exacte, illustrant que le stockage vectoriel et la politique de récupération approximative sont des décisions distinctes.\u003C\u002Fp>\n\u003Ch3 id=\"section-42\">Le filtrage des métadonnées intervient avant ou pendant la récupération des candidats\u003C\u002Fh3>\n\u003Cp>Si l'utilisateur ne peut accéder qu'au locataire A, récupérer des segments sémantiquement similaires du locataire B et tenter de les supprimer plus tard est une mauvaise frontière de sécurité. L'autorisation et les filtres d'éligibilité stricts doivent contraindre l'espace des candidats avant que ces candidats puissent influencer le traitement en aval.\u003C\u002Fp>\n\u003Cp>Le même principe s'applique à la locale, au statut du document, à la classe de source, à la date, à la version du produit et à d'autres contraintes déterministes. La similarité doit classer les candidats éligibles ; elle ne doit pas outrepasser l'éligibilité.\u003C\u002Fp>\n\u003Ch3 id=\"section-45\">Une base de données vectorielle est facultative\u003C\u002Fh3>\n\u003Cp>Pour un petit corpus, une comparaison cosinus par force brute peut être simple et suffisante. Une base de données relationnelle avec support vectoriel peut également convenir. Une base de données vectorielle dédiée devient précieuse lorsque son indexation, son filtrage, son stockage distribué, son comportement de mise à jour ou ses fonctionnalités opérationnelles répondent à un besoin réel.\u003C\u002Fp>\n\u003Cp>Choisir une base de données vectorielle parce que « le RAG en a besoin » inverse le processus d'architecture. Commencez par les exigences de récupération et l'échelle, puis sélectionnez la technologie de stockage\u002Findex.\u003C\u002Fp>\n\u003Ch2 id=\"section-48\">Reclassement : affinement de la pertinence en deuxième étape\u003C\u002Fh2>\n\u003Cp>Un reclassificateur reçoit une requête et un ensemble plus restreint de candidats déjà récupérés, puis attribue des scores de pertinence plus forts ou un nouvel ordre. Il est normalement plus coûteux en calcul que la récupération de première étape, c'est pourquoi il est appliqué après la génération de candidats plutôt qu'à l'ensemble du corpus.\u003C\u002Fp>\n\u003Cp>Les recommandations actuelles d'Elastic décrivent le reclassement sémantique comme une technique de dernière étape sur un petit ensemble top-k et notent qu'il peut affiner la récupération lexicale, sémantique ou hybride. Cohere documente la même architecture : recherche lexicale ou sémantique de première étape suivie d'une étape de reclassement.\u003C\u002Fp>\n\u003Cp>Une implémentation courante utilise un modèle de type cross-encoder qui examine la requête et chaque candidat ensemble. Cette interaction plus riche peut distinguer la pertinence plus précisément que la similarité d'embedding indépendante, mais elle est beaucoup plus coûteuse à l'échelle du corpus.\u003C\u002Fp>\n\u003Ch3 id=\"section-52\">La récupération par bi-encodeur et le reclassement par cross-encodeur résolvent des problèmes de coût différents\u003C\u002Fh3>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Propriété\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Récupération par bi-encodeur \u002F embedding\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Reclassement de style cross-encodeur\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Encodage\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Requête et documents représentés indépendamment\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Requête et candidat traités conjointement\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Calcul des documents\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Peut être précalculé à l'ingestion\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Normalement recalculé par paire requête-candidat\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recherche à l'échelle du corpus\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Adapté avec des index vectoriels\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Généralement trop coûteux sur l'ensemble du corpus\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Rôle typique\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Génération de candidats à haut rappel\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Classement à haute précision d'un petit ensemble de candidats\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Principal compromis\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Rapide et évolutif mais l'interaction de pertinence est compressée dans des vecteurs\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Jugement de pertinence plus riche mais latence\u002Fcoût plus élevés\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch3 id=\"section-54\">Un reclassificateur ne peut pas récupérer ce que la récupération a manqué\u003C\u002Fh3>\n\u003Cp>Si le document pertinent est absent de l'ensemble de candidats, le reranking n'a rien à promouvoir. C'est la raison centrale pour évaluer la recherche et le reranking séparément.\u003C\u002Fp>\n\u003Cp>Un pipeline peut avoir une excellente précision de reranker et échouer malgré tout parce que le rappel de la première étape est faible. Augmenter la qualité du reranker ne réparera pas une couverture source manquante, un mauvais découpage, des filtres restrictifs ou un retriever de candidats faible.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--success my-6 rounded-xl border p-5 border-emerald-300 bg-emerald-50 dark:border-emerald-900 dark:bg-emerald-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Objectif de recherche utile\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Première étape : \u003Cstrong>ne pas manquer les candidats utiles.\u003C\u002Fstrong>\u003Cbr>Deuxième étape : \u003Cstrong>placer les meilleurs candidats en premier.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Ce n&#39;est pas une règle mathématique universelle, mais c&#39;est un modèle d&#39;ingénierie utile pour la recherche en deux étapes.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-58\">La recherche hybride est un choix de conception distinct\u003C\u002Fh2>\n\u003Cp>La recherche sémantique dense est performante lorsque la requête et le document utilisent des formulations différentes mais expriment un sens apparenté. La recherche lexicale est performante lorsque des termes exacts, des identifiants, des noms, des codes ou des expressions rares importent.\u003C\u002Fp>\n\u003Cp>La recherche hybride combine plusieurs signaux candidats, souvent BM25 lexical et similarité vectorielle, puis fusionne les classements à l'aide d'une méthode telle que la Reciprocal Rank Fusion ou une combinaison pondérée de scores.\u003C\u002Fp>\n\u003Cp>Le reranking peut alors opérer sur l'ensemble de candidats fusionné. La recherche hybride et le reranking sont donc des étapes complémentaires mais distinctes.\u003C\u002Fp>\n\u003Ch3 id=\"section-62\">BM25 n'est pas obsolète parce que les embeddings existent\u003C\u002Fh3>\n\u003Cp>La recherche par mots-clés peut surpasser la recherche dense pour des identifiants exacts, des numéros de version, des messages d'erreur, des codes produit et un vocabulaire spécialisé. SQLite FTS5, par exemple, inclut une fonction de classement BM25 pour la recherche en texte intégral.\u003C\u002Fp>\n\u003Cp>Une architecture de recherche solide peut utiliser la recherche lexicale comme seule première étape, la recherche vectorielle comme seule première étape, ou combiner les deux selon le corpus et la distribution des requêtes.\u003C\u002Fp>\n\u003Ch2 id=\"section-65\">Le découpage modifie ce que les embeddings et les rerankers peuvent voir\u003C\u002Fh2>\n\u003Cp>Si un document est mal découpé, aucun composant de recherche ultérieur ne peut reconstruire entièrement l'unité sémantique manquante. Un chunk qui sépare une condition de son exception peut produire un embedding trompeur et peut aussi être mal reranké parce que le texte candidat est incomplet.\u003C\u002Fp>\n\u003Cp>La taille des chunks, le chevauchement, les frontières structurelles et les métadonnées affectent donc à la fois le rappel des candidats et le jugement du reranker. L'évaluation de la recherche doit tester l'ensemble du pipeline, de l'ingestion au classement, et pas seulement le modèle d'embedding.\u003C\u002Fp>\n\u003Ch2 id=\"section-68\">Ne comparez pas les scores de recherche comme s'il s'agissait de probabilités universelles\u003C\u002Fh2>\n\u003Cp>La similarité cosinus, les scores BM25, les scores de vecteurs creux, les rangs RRF et les scores de reranker ont des significations différentes. Un score de 0,82 provenant d'un modèle d'embedding n'est pas automatiquement comparable à 0,82 provenant d'un autre modèle ni à un score de reranker.\u003C\u002Fp>\n\u003Cp>Les seuils doivent être calibrés pour le modèle, le corpus et la tâche réels. Les recommandations actuelles d'Elastic notent également que les scores de similarité d'embedding peuvent dépendre de la requête, ce qui rend les seuils universels risqués.\u003C\u002Fp>\n\u003Ch2 id=\"section-71\">Évaluer les étapes de recherche séparément\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Couche\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Question utile\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Exemple de métrique ou de test\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Couverture source\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le corpus contient-il l'information nécessaire ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Audit de couverture \u002F ensemble de sources à réponse connue\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Découpage\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La preuve nécessaire est-elle récupérable comme une unité cohérente ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Revue du support au niveau des chunks\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recherche de première étape\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'élément pertinent entre-t-il dans l'ensemble de candidats ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recall@k\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Classement\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">À quelle hauteur apparaît la preuve pertinente ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">MRR, nDCG, precision@k\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Reranking\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le scoring de deuxième étape améliore-t-il l'ordre ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Delta nDCG \u002F MRR \u002F precision\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sélection du contexte\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les passages finaux sélectionnés contiennent-ils un support suffisant ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Pertinence \u002F couverture du contexte\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Étape de réponse\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le modèle utilise-t-il correctement les preuves sélectionnées ?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fidélité \u002F évaluation affirmation-preuve\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Cette séparation est opérationnellement importante. Si Recall@50 est faible, le reranker n'est pas le premier composant à corriger. Si Recall@50 est élevé mais que le meilleur passage reste au rang 38, le reranking ou la fusion de classements devient une cible plausible.\u003C\u002Fp>\n\u003Ch2 id=\"section-74\">Quelle couche a réellement échoué ?\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Symptômes et couche de récupération probable\u003C\u002Fh3>\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left dark:border-gray-700 dark:bg-gray-900\">\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Symptôme observé\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Couche probable\u003C\u002Fth>\u003Cth class=\"border border-gray-300 bg-gray-50 px-4 py-3 text-left font-semibold dark:border-gray-700 dark:bg-gray-900\">Premier diagnostic\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Le document pertinent n&#39;apparaît jamais\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Le document pertinent apparaît trop bas\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Résultat sémantiquement bon mais interdit\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Résultat pertinent mais obsolète\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-3 text-left font-semibold dark:border-gray-700\">Résultat correct récupéré mais omis du prompt\u003C\u002Fth>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-3 dark:border-gray-700\">\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-76\">Pertinence et Source de Vérité sont différentes\u003C\u002Fh2>\n\u003Cp>Un reranker peut faire paraître un document obsolète extrêmement pertinent. Un index vectoriel peut récupérer un résumé secondaire qui est sémantiquement plus proche que la source primaire. La qualité de la récupération ne peut donc pas remplacer les règles d'autorité.\u003C\u002Fp>\n\u003Cp>Là où l'autorité de la source importe, les filtres de métadonnées, les classes de sources, les règles de version et la provenance devraient contraindre la récupération avant que le résultat ne devienne un contexte de modèle.\u003C\u002Fp>\n\u003Caside class=\"editorjs-callout editorjs-callout--warning my-6 rounded-xl border p-5 border-amber-300 bg-amber-50 dark:border-amber-900 dark:bg-amber-950\u002F20\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Le reranking ne peut pas rendre une source non autoritaire autoritaire\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">La pertinence répond à la question de savoir si un candidat correspond à la requête. L&#39;architecture de Source de Vérité répond à la question de savoir si ce candidat est autorisé à établir l&#39;affirmation.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-80\">Preuves d'implémentation originales\u003C\u002Fh2>\n\u003Ch3 id=\"section-81\">Moteur de Recherche de Source de Vérité : la récupération lexicale et sémantique sont séparées\u003C\u002Fh3>\n\u003Cp>Le Moteur de Recherche de Source de Vérité contient un chemin de récupération lexicale local utilisant SQLite FTS5\u002FBM25 et un chemin de récupération sémantique optionnel séparé utilisant des embeddings générés localement.\u003C\u002Fp>\n\u003Cp>Son implémentation de recherche sémantique calcule un vecteur de requête et le compare avec les vecteurs de chunks stockés en utilisant la similarité cosinus. Le projet traite délibérément la similarité sémantique comme un signal de découverte plutôt que comme une preuve : un candidat doit encore être retracé jusqu'à une source et un localisateur concrets avant de pouvoir soutenir une affirmation.\u003C\u002Fp>\n\u003Cp>C'est une preuve d'implémentation utile pour R01 car le même corpus peut soutenir le classement lexical et la similarité vectorielle sans confondre l'un ou l'autre mécanisme avec l'autorité probante.\u003C\u002Fp>\n\u003Ch3 id=\"section-85\">Client IA Aaasaasa : Qdrant est un composant d'infrastructure vectorielle\u003C\u002Fh3>\n\u003Cp>Le Client IA Aaasaasa inclut l'infrastructure Qdrant\u002Fvectorielle comme une ressource locale séparée. L'architecture Electron expose les services Qdrant depuis le côté processus principal de confiance plutôt que de traiter la recherche vectorielle comme faisant partie du modèle lui-même.\u003C\u002Fp>\n\u003Cp>Le dépôt contient un adaptateur client Qdrant, une configuration de service Qdrant et une infrastructure Qdrant basée sur Docker. Cela démontre la séparation architecturale entre l'exécution du fournisseur\u002Fmodèle IA et le stockage\u002Frecherche vectorielle.\u003C\u002Fp>\n\u003Cp>L'existence du support Qdrant ne doit pas être surestimée comme un pipeline RAG de production complet. La preuve ici est plus étroite : l'infrastructure vectorielle est implémentée comme sa propre frontière de composant.\u003C\u002Fp>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Preuve d'implémentation\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Ce que cela démontre\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">SQLite FTS5\u002FBM25 dans le Moteur de Recherche de Source de Vérité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La récupération lexicale peut exister indépendamment des embeddings.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Embeddings Ollama locaux\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La génération de représentation est sa propre étape.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vecteurs sémantiques stockés + comparaison cosinus\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La récupération sémantique consomme les embeddings après qu'ils ont été produits.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Support Qdrant dans le Client IA Aaasaasa\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le stockage\u002Frecherche vectorielle est une capacité d'infrastructure séparée du fournisseur de modèle.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Règles de preuve\u002Fprovenance dans le Moteur de Recherche de Source de Vérité\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La similarité récupérée n'égale pas l'autorité ou la preuve.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Aucun reranker personnalisé revendiqué dans ces implémentations\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le reranking est expliqué comme une étape architecturale, non faussement revendiqué comme une preuve déjà implémentée.\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Caside class=\"editorjs-callout editorjs-callout--note my-6 rounded-xl border p-5 border-gray-300 bg-gray-50 dark:border-gray-700 dark:bg-gray-900\u002F40\" role=\"note\">\u003Cstrong class=\"block mb-2 text-gray-900 dark:text-gray-100\">Limite de preuve\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Les preuves d&#39;implémentation actuelles confirment la récupération lexicale, les embeddings, l&#39;infrastructure de recherche vectorielle et la récupération sensible à la provenance. Cet article ne \u003Cstrong>prétend pas\u003C\u002Fstrong> qu&#39;un service de reranking cross-encoder de production est déjà implémenté dans ces projets.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-91\">Quand avez-vous besoin de chaque composant ?\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Besoin\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Composant probable\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Similarité sémantique entre différentes formulations\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modèle d'embedding + recherche par similarité vectorielle\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recherche efficace sur un grand corpus vectoriel\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Index\u002Fbase de données vectorielle ou moteur de recherche compatible vecteurs\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Identifiants exacts, codes d'erreur ou termes rares\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Récupération lexicale\u002Fplein texte telle que BM25\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">À la fois terminologie exacte et sens sémantique\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Récupération hybride lexicale + sémantique\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'ensemble de candidats est bon mais l'ordonnancement est faible\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Reranker\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les éléments pertinents sont absents de l'ensemble de candidats\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Améliorer la couverture des sources, le chunking, le retriever, les filtres ou le nombre de candidats avant le reranking\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Contraintes strictes de locataire\u002Fsource\u002Fversion\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Filtrage déterministe des métadonnées\u002Fautorisations\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Petit corpus\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Potentiellement une simple similarité par force brute ou une base de données généraliste plutôt qu'une base de données vectorielle dédiée\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-93\">Une séquence pratique de conception de la récupération\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Concevoir la récupération à partir des exigences, pas des noms de produits\u003C\u002Fh3>\u003Cdiv class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4\">\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">1\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">1. Définir les types de requêtes\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Identifier les questions sémantiques, les recherches exactes, les identifiants, les lectures d'état actuel et les motifs spécifiques au domaine.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">2\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">2. Définir les sources éligibles\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Appliquer les contraintes de locataire, d'autorisation, de locale, de version, de classe de source et de fraîcheur.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">3\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">3. Établir une base lexicale\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Mesurer si une simple récupération plein texte\u002FBM25 résout déjà une grande partie de la charge de travail.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">4\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">4. Ajouter des embeddings là où le rappel sémantique est nécessaire\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Choisir et évaluer un modèle d'embedding sur des requêtes représentatives du domaine.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">5\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">5. Choisir le stockage\u002Findexation vectorielle selon l'échelle\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Utiliser la force brute, le support vectoriel d'une base de données ou un moteur vectoriel dédié selon les exigences.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">6\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">6. Évaluer le rappel de premier étage\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Confirmer que les preuves pertinentes entrent dans un ensemble de candidats suffisamment grand.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">7\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">7. Ajouter une récupération hybride si les signaux sont complémentaires\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Fusionner les classements lexicaux et sémantiques lorsque les deux améliorent matériellement la génération de candidats.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">8\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">8. Ajouter un reranking si l'ordonnancement reste le goulot d'étranglement\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Appliquer le modèle plus fort uniquement à l'ensemble de candidats où son coût est justifié.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">9\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">9. Ajuster la sélection finale du contexte\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Contrôler la redondance, le budget de contexte, l'autorité, la diversité et la couverture des preuves avant la génération.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv class=\"editorjs-process__step min-w-0  rounded-xl border border-gray-200 dark:border-gray-700 p-4\">\u003Cdiv class=\"text-xs font-semibold text-gray-500 dark:text-gray-400\">10\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 font-semibold text-gray-900 dark:text-gray-100\">10. Évaluer de bout en bout\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Mesurer séparément la qualité de la récupération, du contexte et de la réponse afin de localiser les défaillances.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-95\">Idées fausses courantes\u003C\u002Fh2>\n\u003Cdiv class=\"overflow-x-auto\">\u003Ctable class=\"w-full border-collapse\">\u003Cthead>\u003Ctr>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Idée fausse\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Correction\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Un embedding est une base de données vectorielle. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un embedding est une représentation ; la base de données\u002Fl'index stocke et recherche des représentations.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Une base de données vectorielle crée le sens sémantique. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le modèle d'embedding crée la représentation ; le système vectoriel l'indexe et la compare.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Le RAG nécessite une base de données vectorielle. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Le RAG nécessite une récupération, pas une technologie de récupération spécifique.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Le reranking est identique à la recherche vectorielle. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La recherche vectorielle génère des candidats ; le reranking réordonne un ensemble de candidats.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Les rerankers corrigent un mauvais rappel. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ils ne peuvent pas promouvoir un document qui n'a jamais été récupéré.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« La recherche dense remplace BM25. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La recherche lexicale reste précieuse pour les termes exacts, les identifiants et le vocabulaire spécialisé.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Une similarité plus élevée signifie plus d'autorité. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La similarité et l'autorité de la source sont des dimensions différentes.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Un top-k plus grand améliore toujours le RAG. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Des ensembles de candidats plus grands peuvent améliorer le rappel mais ajoutent de la latence, du bruit et une charge de sélection du contexte.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Un seul seuil de score fonctionne partout. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Les scores dépendent du modèle, de la requête, du corpus et de la méthode de récupération et doivent être calibrés.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">« Une base de données vectorielle dédiée est toujours plus avancée. »\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Elle n'est justifiée que lorsque ses capacités opérationnelles et de récupération correspondent aux exigences.\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-97\">Cas limites et limitations\u003C\u002Fh2>\n\u003Cp>Certaines applications n'ont pas besoin de recherche sémantique. Une recherche exacte en base de données ou du SQL structuré peut être plus correct, plus rapide et plus facile à auditer que la récupération par embeddings.\u003C\u002Fp>\n\u003Cp>Certains corpus sont si petits qu'un balayage vectoriel complet est acceptable. L'indexation approximative ajoute de la complexité sans bénéfice significatif.\u003C\u002Fp>\n\u003Cp>Certaines requêtes nécessitent un rappel élevé avant toute optimisation de précision. La découverte juridique, la recherche et l'examen de conformité peuvent préférer une récupération large de candidats suivie d'un filtrage transparent et d'une revue humaine.\u003C\u002Fp>\n\u003Cp>La récupération multilingue et spécifique à un domaine peut se comporter très différemment selon les modèles d'embedding. Les affirmations de performance issues de jeux de données publics ne doivent pas être considérées comme une preuve pour un corpus privé.\u003C\u002Fp>\n\u003Cp>La latence du reranking augmente avec le nombre et la longueur des candidats. La taille des candidats doit donc être ajustée comme une variable de précision\u002Fcoût\u002Flatence plutôt que copiée d'un tutoriel.\u003C\u002Fp>\n\u003Ch2 id=\"section-103\">Qu'est-ce qui changerait cette réponse ?\u003C\u002Fh2>\n\u003Cp>Les frontières entre composants ne changeraient pas si un fournisseur regroupait la génération d'embeddings, l'indexation vectorielle et le reranking derrière une seule API. Le produit peut masquer les étapes, mais elles restent conceptuellement des responsabilités différentes avec des modes de défaillance différents.\u003C\u002Fp>\n\u003Cp>De futurs modèles d'embedding ou de récupération pourraient réduire le besoin d'un reranking séparé dans certaines charges de travail, tandis que des méthodes plus fortes d'interaction tardive ou d'apprentissage creux peuvent brouiller les catégories traditionnelles dense\u002Flexicale. L'architecture devrait toujours se demander quelle étape produit les représentations, quelle étape génère les candidats et quelle étape affine le classement.\u003C\u002Fp>\n\u003Cp>La meilleure conception change aussi avec la taille du corpus, le mélange de requêtes, la langue, la terminologie du domaine, la fréquence de mise à jour, l'autorité des sources, le budget de latence et les résultats d'évaluation.\u003C\u002Fp>\n\u003Ch2 id=\"section-107\">Connaissances canoniques associées\u003C\u002Fh2>\n\u003Cp>R01 suppose que le concept de base du RAG est déjà compris. Le RAG est le modèle plus large dans lequel des informations externes récupérées sont fournies à un modèle ; les embeddings, la recherche vectorielle et le reranking sont des composants de récupération optionnels à l'intérieur de ce modèle.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">Qu'est-ce que le RAG ? L'explication la plus simple de son fonctionnement\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Une base en langage clair sur la manière dont la recherche apporte des connaissances externes dans le contexte du modèle.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Lire les fondements du RAG →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Cp>Lorsque la recherche échoue, diagnostiquez séparément la couverture des sources, la recherche, le classement, l'assemblage du contexte et la génération plutôt que de traiter l'ensemble du système comme un seul « échec du RAG ».\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method\" class=\"flex flex-col sm:flex-row gap-4 rounded-xl border border-gray-200 dark:border-gray-700 p-4 transition hover:border-primary-500\">\u003Cdiv class=\"min-w-0 flex-1\">\u003Cstrong class=\"block text-lg text-gray-900 dark:text-gray-100\">Le RAG a échoué — mais quelle couche a réellement échoué ? Une méthode de diagnostic\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Une méthode couche par couche pour isoler les défaillances de couverture des sources, de recherche, de classement, d'assemblage du contexte, de génération, d'attribution des preuves et de fraîcheur.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Lire la méthode de diagnostic du RAG →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Cp>L'architecture de source de vérité est la couche d'autorité autour de la recherche : elle décide quelle source peut établir une affirmation, tandis que les embeddings et le classement décident seulement quels candidats semblent pertinents.\u003C\u002Fp>\n\u003Ch2 id=\"section-113\">Questions fréquentes\u003C\u002Fh2>\n\u003Csection class=\"editorjs-faq my-6 rounded-xl border border-gray-200 p-5 dark:border-gray-700\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Embeddings, bases de données vectorielles et reclassement\u003C\u002Fh3>\u003Cdiv id=\"faq1\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Quelle est la différence entre les embeddings et une base de données vectorielle ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Les embeddings sont des représentations numériques produites par un modèle. Une base de données vectorielle ou un index vectoriel stocke et recherche ces représentations avec des identifiants et des métadonnées.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq2\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Que fait un reclassificateur ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Un reclassificateur prend un ensemble de candidats déjà récupérés et renote ou réordonne ces candidats à l&#39;aide d&#39;un modèle de pertinence ou d&#39;une méthode de notation plus puissante.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq3\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Le RAG nécessite-t-il une base de données vectorielle ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Non. Le RAG nécessite la récupération d&#39;informations externes. La récupération peut utiliser la recherche lexicale, SQL, des API, des graphes, la recherche vectorielle, la recherche hybride ou des combinaisons de celles-ci.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq4\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Pourquoi ne pas utiliser le reclassificateur sur l&#39;ensemble du corpus ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Les reclassificateurs effectuent généralement une interaction requête-document plus coûteuse, ils sont donc habituellement appliqués à un petit ensemble de candidats top-k après un récupérateur de premier étage plus rapide.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq5\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Le reclassement peut-il corriger un document manquant ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Non. Si le document pertinent n&#39;a pas été récupéré dans l&#39;ensemble de candidats, le reclassement n&#39;a rien à promouvoir.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq6\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">La similarité cosinus est-elle une probabilité de pertinence ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Non. C&#39;est une mesure de similarité dont la signification numérique dépend du modèle d&#39;embedding et du corpus. Elle ne doit pas être traitée comme une probabilité universelle de pertinence.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq7\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Dois-je utiliser BM25 et la recherche vectorielle ensemble ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Utilisez la recherche hybride lorsque l&#39;évaluation montre que les signaux lexicaux et sémantiques récupèrent des documents pertinents complémentaires. Elle n&#39;est pas automatiquement meilleure pour tous les corpus.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003Cdiv id=\"faq8\" class=\"border-t border-gray-200 py-4 first:border-t-0 dark:border-gray-700\">\u003Ch4 class=\"font-semibold text-gray-900 dark:text-gray-100\">Quand ai-je besoin d&#39;une base de données vectorielle dédiée ?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Lorsque l&#39;indexation vectorielle, le filtrage, l&#39;échelle, les mises à jour, l&#39;exploitation distribuée ou d&#39;autres exigences spécifiques aux vecteurs justifient un système spécialisé. Les petites charges de travail peuvent ne pas en avoir besoin.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-115\">Glossaire\u003C\u002Fh2>\n\u003Csection class=\"editorjs-glossary my-6 rounded-xl border border-gray-200 dark:border-gray-700 p-5\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Termes clés de la recherche\u003C\u002Fh3>\u003Cdl>\u003Cdiv id=\"embedding\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Embedding\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une représentation numérique de contenu produite par un modèle d'embedding pour la similarité, le regroupement, la recherche ou des tâches connexes.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"dense-vector\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Vecteur dense\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une représentation vectorielle dans laquelle de nombreuses dimensions portent des valeurs non nulles, couramment utilisée en recherche sémantique.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"sparse-vector\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Vecteur creux\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une représentation de grande dimension dans laquelle la plupart des dimensions sont nulles, préservant souvent une structure plus proche des tokens ou des termes.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"vector-index\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Index vectoriel\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une structure de données qui organise les vecteurs pour une recherche efficace par similarité ou plus proches voisins.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"vector-database\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Base de données vectorielle\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un système de stockage\u002Frecherche conçu pour gérer les vecteurs, les métadonnées associées et les charges de travail de recherche vectorielle.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"ann\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">ANN\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Recherche approximative des plus proches voisins, qui échange une comparaison exhaustive exacte contre une recherche plus rapide à grande échelle.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"hnsw\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">HNSW\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Hierarchical Navigable Small World, une approche d'indexation approximative des plus proches voisins basée sur un graphe, largement utilisée pour la recherche vectorielle.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"bm25\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">BM25\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une méthode de classement de pertinence lexicale basée sur l'occurrence des termes et les statistiques du corpus, largement utilisée en recherche plein texte.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"hybrid-search\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Recherche hybride\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Recherche qui combine les résultats ou les scores de plusieurs méthodes de récupération telles que la recherche lexicale et vectorielle.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"reranking\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Reclassement\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une étape de recherche ultérieure qui renote et réordonne un ensemble de candidats déjà généré.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"bi-encoder\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Bi-encodeur\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Une architecture qui encode la requête et le candidat indépendamment, permettant le précalcul et une recherche de similarité évolutive.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"cross-encoder\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Cross-encodeur\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un modèle qui traite conjointement une requête et un texte candidat, améliorant souvent le jugement de pertinence à un coût de calcul plus élevé.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"recall-at-k\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">Recall@k\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">La fraction d'éléments pertinents récupérés parmi les k meilleurs candidats récupérés.\u003C\u002Fdd>\u003C\u002Fdiv>\u003Cdiv id=\"ndcg\" class=\"border-t border-gray-200 dark:border-gray-700 py-3 first:border-t-0\">\u003Cdt class=\"font-semibold text-gray-900 dark:text-gray-100\">nDCG\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Normalized Discounted Cumulative Gain, une métrique de classement qui récompense les résultats pertinents apparaissant plus haut dans une liste ordonnée.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-117\">Conclusion\u003C\u002Fh2>\n\u003Cp>Le modèle de recherche clair est simple : les embeddings représentent le sens, la recherche vectorielle récupère les candidats, et les reclassificateurs affinent l'ordre des candidats.\u003C\u002Fp>\n\u003Cp>Une fois ces frontières explicites, les décisions d'architecture deviennent plus faciles à diagnostiquer. Les candidats manquants pointent vers la couverture des sources, le découpage, les embeddings, les filtres ou la recherche de premier étage. Un mauvais ordonnancement pointe vers le classement, la fusion ou le reclassement. Les réponses finales incorrectes peuvent alors être étudiées séparément au niveau du contexte et de la génération.\u003C\u002Fp>\n\u003Cp>Le résultat le plus important n'est pas de choisir le composant de recherche le plus à la mode. C'est de construire un pipeline de recherche dont les étapes, les frontières d'autorité, les métriques et les modes de défaillance peuvent être mesurés indépendamment.\u003C\u002Fp>\n\u003Ch2 id=\"section-121\">Sources primaires et preuves de mise en œuvre\u003C\u002Fh2>\n\u003Cp>Les références externes ci-dessous documentent les mécanismes de représentation, de recherche vectorielle et de reclassement utilisés dans cet article. Les sections spécifiques au projet sont des preuves de mise en œuvre originales et sont intentionnellement plus étroites que des affirmations sur la maturité complète d'un RAG en production.\u003C\u002Fp>\n\u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.10084\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Sentence-BERT : plongements de phrases à l&#39;aide de réseaux BERT siamois\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Article fondateur démontrant des plongements de phrases calculables indépendamment pour une recherche efficace de similarité sémantique.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Foverview\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Qdrant — Aperçu de l&#39;architecture et des structures de données\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentation officielle décrivant les collections, les points, les vecteurs, les métadonnées de charge utile et l&#39;indexation de similarité basée sur HNSW.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fsearch\u002Fsearch\u002F\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Qdrant — Recherche\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentation officielle de recherche vectorielle couvrant les requêtes de similarité, le filtrage, la recherche exacte versus approximative et le comportement dense\u002Fcreux.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Fvector\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Elastic — Recherche vectorielle\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentation actuelle sur la récupération vectorielle dense\u002Fcreuse, les combinaisons lexicales\u002Fvectorielles et les pipelines de recherche multi-étapes.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Franking\u002Fsemantic-reranking\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Elastic — Reclassement sémantique\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Recommandations actuelles définissant le reclassement sémantique comme une opération de pertinence ultérieure sur un ensemble de candidats plus restreint.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Freranking-with-cohere\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">Cohere — Reclassement avec Cohere\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentation actuelle montrant le reclassement comme une amélioration de second niveau par rapport à une récupération de premier niveau lexicale ou sémantique.\u003C\u002Fp>\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fwww.sqlite.org\u002Ffts5.html\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"editorjs-link-tool block border border-gray-200 dark:border-gray-700 rounded-lg p-4 transition text-gray-900 dark:text-gray-100 hover:border-primary-500 hover:bg-primary-50 dark:hover:bg-gray-900 hover:text-gray-900 dark:hover:text-gray-100\">\u003Cstrong class=\"block font-semibold\">SQLite FTS5\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentation officielle de SQLite pour la recherche en texte intégral et la fonction de classement BM25 intégrée utilisée comme preuve de récupération lexicale.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":1251},1791480358656,[214,220,228,235,242,250,255,260,265,270,275,280,285,290,316,321,326,331,336,375,380,385,390,395,400,405,410,415,420,425,430,435,440,446,451,456,461,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,570,575,580,585,592,597,602,607,612,617,622,627,632,637,642,647,652,657,662,699,704,709,745,750,755,760,766,771,776,781,786,791,796,801,806,811,837,843,848,879,884,920,925,963,968,973,978,983,988,993,998,1003,1008,1013,1018,1023,1032,1037,1045,1050,1055,1093,1098,1157,1162,1167,1172,1177,1182,1187,1197,1206,1215,1224,1233,1242],{"id":215,"data":216,"type":218,"tunes":219},"intro",{"text":217},"Les embeddings, les bases de données vectorielles et les rerankers sont trois parties différentes de la recherche d'information. Un modèle d'embedding convertit du texte ou d'autres données en représentations numériques ; une base de données vectorielle ou un index vectoriel stocke et recherche ces représentations pour récupérer des éléments candidats ; un reranker prend un ensemble de candidats plus restreint et le réordonne à l'aide d'un modèle de pertinence ou d'une méthode de scoring plus coûteuse. Ils apparaissent souvent ensemble dans le RAG, mais aucun d'entre eux n'est identique au RAG, et aucun n'est obligatoire dans tous les systèmes de recherche d'information.","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>Les embeddings représentent. La recherche vectorielle récupère. Le reranking affine.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Un modèle mental utile est :\u003Cbr>\u003Cstrong>contenu → embedding → récupération de candidats → reranking → contexte sélectionné → modèle\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>Les frontières importent parce que chaque couche échoue différemment. De mauvais embeddings déforment la similarité sémantique. Un index de recherche faible manque des candidats utiles. Un reranker peut réordonner les candidats, mais il ne peut pas récupérer un document pertinent qui n'a jamais été récupéré.","Réponse directe","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"boundary",{"body":231,"title":232,"variant":233},"Une base de données vectorielle n'est pas un modèle d'embedding. Un embedding n'est pas un résultat de recherche. Un reranker n'est pas une base de données vectorielle. Le RAG est le modèle plus large qui peut utiliser n'importe lequel de ces composants pour récupérer des informations externes avant la génération.","Ne pas réduire la pile de recherche d'information","warning",{},{"id":236,"data":237,"type":226,"tunes":241},"current",{"body":238,"title":239,"variant":240},"L'architecture de base est stable même si les produits évoluent rapidement. La documentation actuelle de Qdrant distingue les vecteurs, les métadonnées de payload, les collections et les index vectoriels ; les recommandations actuelles d'Elastic traitent le reranking sémantique comme une opération de stade ultérieur sur un petit ensemble de candidats ; la documentation actuelle de Cohere décrit également le reranking comme une amélioration de second stade par rapport à la recherche lexicale ou sémantique.","Note sur les sources actuelles — 8 octobre 2026","note",{},{"id":243,"data":244,"type":248,"tunes":249},"toc",{"title":245,"maxLevel":246,"minLevel":247},"Sommaire",3,2,"tableOfContents",{},{"id":251,"data":252,"type":42,"tunes":254},"h-meaning",{"text":253,"level":247},"Ce que cela signifie vraiment",{},{"id":256,"data":257,"type":218,"tunes":259},"p-meaning-1",{"text":258},"Les systèmes de recherche ont deux objectifs concurrents : trouver suffisamment de matériel potentiellement pertinent et placer le meilleur matériel près du sommet. La récupération rapide de premier stade optimise généralement la génération de candidats. Un modèle de second stade plus puissant peut ensuite consacrer plus de calcul à distinguer les meilleurs candidats.",{},{"id":261,"data":262,"type":218,"tunes":264},"p-meaning-2",{"text":263},"Les embeddings, les index vectoriels et les rerankers occupent différentes positions dans ce processus. Les traiter comme une seule fonctionnalité masque des choix de conception importants concernant le rappel, la précision, la latence, le stockage, le filtrage des métadonnées et le coût du modèle.",{},{"id":266,"data":267,"type":218,"tunes":269},"p-meaning-3",{"text":268},"La distinction évite également une erreur courante du RAG : supposer que stocker des embeddings de documents dans une base de données vectorielle crée automatiquement une recherche de haute qualité. La qualité de la recherche dépend du modèle d'embedding, du découpage, des métadonnées, de la construction de la requête, de la configuration de l'index, du nombre de candidats, de la recherche hybride, du reranking et de l'autorité des sources sous-jacentes.",{},{"id":271,"data":272,"type":42,"tunes":274},"h-simple",{"text":273,"level":247},"L'exemple le plus simple",{},{"id":276,"data":277,"type":218,"tunes":279},"p-simple-1",{"text":278},"Supposons qu'une base de connaissances contienne 100 000 segments de documents. Un utilisateur demande : « Comment révoquer un jeton d'API ? »",{},{"id":281,"data":282,"type":218,"tunes":284},"p-simple-2",{"text":283},"D'abord, un modèle d'embedding peut encoder la requête en un vecteur. Les segments de documents peuvent déjà avoir leurs propres embeddings stockés. Une recherche vectorielle compare ensuite le vecteur de requête aux vecteurs de documents indexés et renvoie, par exemple, 30 candidats probables.",{},{"id":286,"data":287,"type":218,"tunes":289},"p-simple-3",{"text":288},"Ces 30 candidats peuvent ensuite être transmis à un reranker. Le reranker compare la requête plus directement à chaque candidat et produit un nouvel ordre de pertinence. L'application peut conserver les cinq meilleurs pour le contexte du modèle.",{},{"id":291,"data":292,"type":314,"tunes":315},"simple-flow",{"steps":293,"title":312,"orientation":313},[294,297,300,303,306,309],{"label":295,"description":296},"1. Encoder les documents","Convertir chaque segment recherchable en une représentation numérique, généralement au moment de l'ingestion.",{"label":298,"description":299},"2. Stocker\u002Findexer les vecteurs","Associer les vecteurs à des identifiants de documents et à des métadonnées dans un index ou une base de données vectorielle interrogeable.",{"label":301,"description":302},"3. Encoder la requête","Encoder la requête de l'utilisateur à l'aide du modèle d'embedding compatible et de la configuration de requête.",{"label":304,"description":305},"4. Récupérer les candidats","Exécuter une recherche de similarité vectorielle, souvent avec des filtres de métadonnées, pour produire un ensemble de candidats top-k plus large.",{"label":307,"description":308},"5. Reranker les candidats","Appliquer un modèle de pertinence plus puissant à la requête et au petit ensemble de candidats.",{"label":310,"description":311},"6. Sélectionner le contexte","Conserver les passages les plus utiles pour la réponse en aval, l'étape de l'agent ou le résultat de recherche.","Un pipeline de recherche sémantique de base à deux stades","auto","processFlow",{},{"id":317,"data":318,"type":42,"tunes":320},"h-stops",{"text":319,"level":247},"Où l'exemple simple s'arrête",{},{"id":322,"data":323,"type":218,"tunes":325},"p-stops-1",{"text":324},"Les systèmes de recherche réels ne sont pas obligés d'utiliser des embeddings denses. La recherche par mots-clés telle que BM25 peut être le récupérateur de premier stade. La récupération apprise creuse, les filtres SQL, le parcours de graphe ou les API applicatives peuvent également générer des candidats.",{},{"id":327,"data":328,"type":218,"tunes":330},"p-stops-2",{"text":329},"Un reranker ne se soucie pas non plus que les candidats proviennent d'une base de données vectorielle. Il peut reranker des résultats BM25, des résultats hybrides, des documents sélectionnés manuellement ou des candidats provenant de plusieurs récupérateurs.",{},{"id":332,"data":333,"type":218,"tunes":335},"p-stops-3",{"text":334},"De même, les embeddings ne nécessitent pas de base de données vectorielle spécialisée. Les petits jeux de données peuvent être comparés en mémoire ou avec des bases de données généralistes et des extensions vectorielles. Les systèmes vectoriels spécialisés deviennent utiles lorsque l'indexation, la recherche approximative des plus proches voisins, le filtrage, l'échelle, le comportement de mise à jour ou les exigences opérationnelles les justifient.",{},{"id":337,"data":338,"type":373,"tunes":374},"core-comparison",{"rows":339,"title":361,"layout":362,"columns":363},[340,345,349,353,357],{"id":341,"label":342,"values":343},"job","Tâche principale",[344,344,344],"",{"id":346,"label":347,"values":348},"input","Entrée typique",[344,344,344],{"id":350,"label":351,"values":352},"output","Sortie typique",[344,344,344],{"id":354,"label":355,"values":356},"cost","Profil de coût",[344,344,344],{"id":358,"label":359,"values":360},"can-miss","Défaillance typique",[344,344,344],"Trois composants de récupération différents","table",[364,367,370],{"id":365,"label":366},"embedding","Embedding",{"id":368,"label":369},"vector","Base de données vectorielle \u002F index",{"id":371,"label":372},"reranker","Reranker","comparison",{},{"id":376,"data":377,"type":42,"tunes":379},"h-embeddings",{"text":378,"level":247},"Embeddings : représentation, pas récupération",{},{"id":381,"data":382,"type":218,"tunes":384},"p-emb-1",{"text":383},"Un embedding est une représentation numérique produite par un modèle. Pour la récupération sémantique, les textes ayant une signification liée sont censés occuper des positions utiles dans un espace vectoriel afin qu'une fonction de similarité ou de distance puisse les comparer.",{},{"id":386,"data":387,"type":218,"tunes":389},"p-emb-2",{"text":388},"Sentence-BERT a été une étape influente pour rendre la similarité sémantique au niveau des phrases pratique avec des représentations de style bi-encodeur qui peuvent être calculées indépendamment et comparées efficacement. L'idée générale reste centrale pour la récupération dense moderne : précalculer les représentations des documents, calculer la représentation de la requête au moment de la recherche, puis les comparer.",{},{"id":391,"data":392,"type":218,"tunes":394},"p-emb-3",{"text":393},"L'embedding lui-même ne recherche pas dans un corpus. C'est une donnée produite par un modèle d'embedding. La récupération commence lorsque le système compare la représentation de la requête aux candidats stockés.",{},{"id":396,"data":397,"type":42,"tunes":399},"h-embedding-model",{"text":398,"level":246},"Le modèle d'embedding définit l'espace de représentation",{},{"id":401,"data":402,"type":218,"tunes":404},"p-emodel-1",{"text":403},"Les vecteurs de documents et de requêtes doivent être compatibles avec le modèle et la configuration utilisés pour les créer. Remplacer un modèle d'embedding peut modifier la dimensionnalité, le comportement de similarité, la couverture linguistique et les performances du domaine.",{},{"id":406,"data":407,"type":218,"tunes":409},"p-emodel-2",{"text":408},"C'est pourquoi une migration de modèle d'embedding n'est pas simplement un changement de nom d'API. Les documents existants peuvent devoir être ré-embeddés et l'index reconstruit ou versionné.",{},{"id":411,"data":412,"type":42,"tunes":414},"h-dense-sparse",{"text":413,"level":246},"Les représentations denses et creuses sont différentes",{},{"id":416,"data":417,"type":218,"tunes":419},"p-dense-1",{"text":418},"Les embeddings denses contiennent généralement de nombreuses dimensions non nulles et sont couramment utilisés pour la similarité sémantique. Les représentations creuses contiennent de nombreux zéros et peuvent préserver une structure plus forte de type token ou terme.",{},{"id":421,"data":422,"type":218,"tunes":424},"p-dense-2",{"text":423},"Les deux peuvent prendre en charge la récupération sémantique, et les systèmes de recherche modernes peuvent combiner des signaux denses, creux et lexicaux. « Recherche vectorielle » ne signifie donc pas toujours un seul pipeline de similarité cosinus dense.",{},{"id":426,"data":427,"type":42,"tunes":429},"h-distance",{"text":428,"level":246},"Les fonctions de similarité font partie du contrat de représentation",{},{"id":431,"data":432,"type":218,"tunes":434},"p-distance-1",{"text":433},"La similarité cosinus, le produit scalaire et la distance euclidienne ne signifient pas la même chose. La métrique correcte dépend de la façon dont le modèle d'embedding a été entraîné et normalisé.",{},{"id":436,"data":437,"type":218,"tunes":439},"p-distance-2",{"text":438},"La documentation actuelle de Qdrant, par exemple, exige une métrique de distance dans le cadre de la configuration vectorielle et documente les choix de type cosinus, produit scalaire et euclidien. La règle architecturale importante est de traiter la métrique comme faisant partie du contrat d'embedding\u002Findex plutôt que d'en choisir une arbitrairement.",{},{"id":441,"data":442,"type":226,"tunes":445},"embedding-not-truth",{"body":443,"title":444,"variant":233},"Deux passages peuvent être sémantiquement proches alors que l'un est obsolète, non autorisé ou erroné. Les embeddings estiment la similarité de représentation ; ils ne déterminent pas l'autorité de la Source de Vérité, la fraîcheur ou la validité probante.","La similarité d'embedding n'est pas un support factuel",{},{"id":447,"data":448,"type":42,"tunes":450},"h-vector-db",{"text":449,"level":247},"Bases de données vectorielles et index : récupération de candidats",{},{"id":452,"data":453,"type":218,"tunes":455},"p-vdb-1",{"text":454},"Une base de données vectorielle ou un système de recherche compatible avec les vecteurs organise les représentations vectorielles afin que l'application puisse récupérer efficacement les candidats proches. Les systèmes pratiques associent généralement les vecteurs à des identifiants et à des métadonnées de charge utile telles que la source, la langue, le locataire, le type de document, l'horodatage ou la portée d'accès.",{},{"id":457,"data":458,"type":218,"tunes":460},"p-vdb-2",{"text":459},"Qdrant, par exemple, organise les données en collections de points où un point contient un vecteur et des métadonnées de charge utile facultatives. Sa documentation décrit la recherche de similarité basée sur HNSW et le filtrage des métadonnées comme des capacités distinctes de la couche de récupération.",{},{"id":462,"data":463,"type":218,"tunes":465},"p-vdb-3",{"text":464},"Cette distinction est importante : l'index vectoriel répond à un problème de plus proche voisin, tandis que les filtres de charge utile imposent des contraintes structurelles telles que le locataire, la classe de document ou la langue.",{},{"id":467,"data":468,"type":42,"tunes":470},"h-ann",{"text":469,"level":246},"La recherche approximative du plus proche voisin échange l'exactitude contre l'efficacité",{},{"id":472,"data":473,"type":218,"tunes":475},"p-ann-1",{"text":474},"Comparer un vecteur de requête à chaque vecteur peut être pratique pour de petites collections mais coûteux à grande échelle. Les index approximatifs du plus proche voisin tels que HNSW réduisent le coût de recherche en naviguant dans une structure d'index au lieu de scanner exhaustivement chaque vecteur.",{},{"id":477,"data":478,"type":218,"tunes":480},"p-ann-2",{"text":479},"La recherche approximative introduit un compromis rappel\u002Flatence. Une recherche plus rapide peut manquer des candidats que la recherche exacte renverrait. Les paramètres d'index affectent donc la qualité de la récupération, pas seulement les performances de l'infrastructure.",{},{"id":482,"data":483,"type":218,"tunes":485},"p-ann-3",{"text":484},"Qdrant expose à la fois les paramètres liés à HNSW et une option de recherche exacte, illustrant que le stockage vectoriel et la politique de récupération approximative sont des décisions distinctes.",{},{"id":487,"data":488,"type":42,"tunes":490},"h-filtering",{"text":489,"level":246},"Le filtrage des métadonnées intervient avant ou pendant la récupération des candidats",{},{"id":492,"data":493,"type":218,"tunes":495},"p-filter-1",{"text":494},"Si l'utilisateur ne peut accéder qu'au locataire A, récupérer des segments sémantiquement similaires du locataire B et tenter de les supprimer plus tard est une mauvaise frontière de sécurité. L'autorisation et les filtres d'éligibilité stricts doivent contraindre l'espace des candidats avant que ces candidats puissent influencer le traitement en aval.",{},{"id":497,"data":498,"type":218,"tunes":500},"p-filter-2",{"text":499},"Le même principe s'applique à la locale, au statut du document, à la classe de source, à la date, à la version du produit et à d'autres contraintes déterministes. La similarité doit classer les candidats éligibles ; elle ne doit pas outrepasser l'éligibilité.",{},{"id":502,"data":503,"type":42,"tunes":505},"h-vector-not-required",{"text":504,"level":246},"Une base de données vectorielle est facultative",{},{"id":507,"data":508,"type":218,"tunes":510},"p-optional-1",{"text":509},"Pour un petit corpus, une comparaison cosinus par force brute peut être simple et suffisante. Une base de données relationnelle avec support vectoriel peut également convenir. Une base de données vectorielle dédiée devient précieuse lorsque son indexation, son filtrage, son stockage distribué, son comportement de mise à jour ou ses fonctionnalités opérationnelles répondent à un besoin réel.",{},{"id":512,"data":513,"type":218,"tunes":515},"p-optional-2",{"text":514},"Choisir une base de données vectorielle parce que « le RAG en a besoin » inverse le processus d'architecture. Commencez par les exigences de récupération et l'échelle, puis sélectionnez la technologie de stockage\u002Findex.",{},{"id":517,"data":518,"type":42,"tunes":520},"h-rerank",{"text":519,"level":247},"Reclassement : affinement de la pertinence en deuxième étape",{},{"id":522,"data":523,"type":218,"tunes":525},"p-rerank-1",{"text":524},"Un reclassificateur reçoit une requête et un ensemble plus restreint de candidats déjà récupérés, puis attribue des scores de pertinence plus forts ou un nouvel ordre. Il est normalement plus coûteux en calcul que la récupération de première étape, c'est pourquoi il est appliqué après la génération de candidats plutôt qu'à l'ensemble du corpus.",{},{"id":527,"data":528,"type":218,"tunes":530},"p-rerank-2",{"text":529},"Les recommandations actuelles d'Elastic décrivent le reclassement sémantique comme une technique de dernière étape sur un petit ensemble top-k et notent qu'il peut affiner la récupération lexicale, sémantique ou hybride. Cohere documente la même architecture : recherche lexicale ou sémantique de première étape suivie d'une étape de reclassement.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-rerank-3",{"text":534},"Une implémentation courante utilise un modèle de type cross-encoder qui examine la requête et chaque candidat ensemble. Cette interaction plus riche peut distinguer la pertinence plus précisément que la similarité d'embedding indépendante, mais elle est beaucoup plus coûteuse à l'échelle du corpus.",{},{"id":537,"data":538,"type":42,"tunes":540},"h-bi-cross",{"text":539,"level":246},"La récupération par bi-encodeur et le reclassement par cross-encodeur résolvent des problèmes de coût différents",{},{"id":542,"data":543,"type":362,"tunes":569},"encoder-table",{"content":544,"stretched":43,"withHeadings":14},[545,549,553,557,561,565],[546,547,548],"Propriété","Récupération par bi-encodeur \u002F embedding","Reclassement de style cross-encodeur",[550,551,552],"Encodage","Requête et documents représentés indépendamment","Requête et candidat traités conjointement",[554,555,556],"Calcul des documents","Peut être précalculé à l'ingestion","Normalement recalculé par paire requête-candidat",[558,559,560],"Recherche à l'échelle du corpus","Adapté avec des index vectoriels","Généralement trop coûteux sur l'ensemble du corpus",[562,563,564],"Rôle typique","Génération de candidats à haut rappel","Classement à haute précision d'un petit ensemble de candidats",[566,567,568],"Principal compromis","Rapide et évolutif mais l'interaction de pertinence est compressée dans des vecteurs","Jugement de pertinence plus riche mais latence\u002Fcoût plus élevés",{},{"id":571,"data":572,"type":42,"tunes":574},"h-rerank-limit",{"text":573,"level":246},"Un reclassificateur ne peut pas récupérer ce que la récupération a manqué",{},{"id":576,"data":577,"type":218,"tunes":579},"p-rerank-limit-1",{"text":578},"Si le document pertinent est absent de l'ensemble de candidats, le reranking n'a rien à promouvoir. C'est la raison centrale pour évaluer la recherche et le reranking séparément.",{},{"id":581,"data":582,"type":218,"tunes":584},"p-rerank-limit-2",{"text":583},"Un pipeline peut avoir une excellente précision de reranker et échouer malgré tout parce que le rappel de la première étape est faible. Augmenter la qualité du reranker ne réparera pas une couverture source manquante, un mauvais découpage, des filtres restrictifs ou un retriever de candidats faible.",{},{"id":586,"data":587,"type":226,"tunes":591},"recall-precision",{"body":588,"title":589,"variant":590},"Première étape : \u003Cstrong>ne pas manquer les candidats utiles.\u003C\u002Fstrong>\u003Cbr>Deuxième étape : \u003Cstrong>placer les meilleurs candidats en premier.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Ce n'est pas une règle mathématique universelle, mais c'est un modèle d'ingénierie utile pour la recherche en deux étapes.","Objectif de recherche utile","success",{},{"id":593,"data":594,"type":42,"tunes":596},"h-hybrid",{"text":595,"level":247},"La recherche hybride est un choix de conception distinct",{},{"id":598,"data":599,"type":218,"tunes":601},"p-hybrid-1",{"text":600},"La recherche sémantique dense est performante lorsque la requête et le document utilisent des formulations différentes mais expriment un sens apparenté. La recherche lexicale est performante lorsque des termes exacts, des identifiants, des noms, des codes ou des expressions rares importent.",{},{"id":603,"data":604,"type":218,"tunes":606},"p-hybrid-2",{"text":605},"La recherche hybride combine plusieurs signaux candidats, souvent BM25 lexical et similarité vectorielle, puis fusionne les classements à l'aide d'une méthode telle que la Reciprocal Rank Fusion ou une combinaison pondérée de scores.",{},{"id":608,"data":609,"type":218,"tunes":611},"p-hybrid-3",{"text":610},"Le reranking peut alors opérer sur l'ensemble de candidats fusionné. La recherche hybride et le reranking sont donc des étapes complémentaires mais distinctes.",{},{"id":613,"data":614,"type":42,"tunes":616},"h-bm25",{"text":615,"level":246},"BM25 n'est pas obsolète parce que les embeddings existent",{},{"id":618,"data":619,"type":218,"tunes":621},"p-bm25-1",{"text":620},"La recherche par mots-clés peut surpasser la recherche dense pour des identifiants exacts, des numéros de version, des messages d'erreur, des codes produit et un vocabulaire spécialisé. SQLite FTS5, par exemple, inclut une fonction de classement BM25 pour la recherche en texte intégral.",{},{"id":623,"data":624,"type":218,"tunes":626},"p-bm25-2",{"text":625},"Une architecture de recherche solide peut utiliser la recherche lexicale comme seule première étape, la recherche vectorielle comme seule première étape, ou combiner les deux selon le corpus et la distribution des requêtes.",{},{"id":628,"data":629,"type":42,"tunes":631},"h-chunking",{"text":630,"level":247},"Le découpage modifie ce que les embeddings et les rerankers peuvent voir",{},{"id":633,"data":634,"type":218,"tunes":636},"p-chunk-1",{"text":635},"Si un document est mal découpé, aucun composant de recherche ultérieur ne peut reconstruire entièrement l'unité sémantique manquante. Un chunk qui sépare une condition de son exception peut produire un embedding trompeur et peut aussi être mal reranké parce que le texte candidat est incomplet.",{},{"id":638,"data":639,"type":218,"tunes":641},"p-chunk-2",{"text":640},"La taille des chunks, le chevauchement, les frontières structurelles et les métadonnées affectent donc à la fois le rappel des candidats et le jugement du reranker. L'évaluation de la recherche doit tester l'ensemble du pipeline, de l'ingestion au classement, et pas seulement le modèle d'embedding.",{},{"id":643,"data":644,"type":42,"tunes":646},"h-scores",{"text":645,"level":247},"Ne comparez pas les scores de recherche comme s'il s'agissait de probabilités universelles",{},{"id":648,"data":649,"type":218,"tunes":651},"p-scores-1",{"text":650},"La similarité cosinus, les scores BM25, les scores de vecteurs creux, les rangs RRF et les scores de reranker ont des significations différentes. Un score de 0,82 provenant d'un modèle d'embedding n'est pas automatiquement comparable à 0,82 provenant d'un autre modèle ni à un score de reranker.",{},{"id":653,"data":654,"type":218,"tunes":656},"p-scores-2",{"text":655},"Les seuils doivent être calibrés pour le modèle, le corpus et la tâche réels. Les recommandations actuelles d'Elastic notent également que les scores de similarité d'embedding peuvent dépendre de la requête, ce qui rend les seuils universels risqués.",{},{"id":658,"data":659,"type":42,"tunes":661},"h-eval",{"text":660,"level":247},"Évaluer les étapes de recherche séparément",{},{"id":663,"data":664,"type":362,"tunes":698},"eval-table",{"content":665,"stretched":43,"withHeadings":14},[666,670,674,678,682,686,690,694],[667,668,669],"Couche","Question utile","Exemple de métrique ou de test",[671,672,673],"Couverture source","Le corpus contient-il l'information nécessaire ?","Audit de couverture \u002F ensemble de sources à réponse connue",[675,676,677],"Découpage","La preuve nécessaire est-elle récupérable comme une unité cohérente ?","Revue du support au niveau des chunks",[679,680,681],"Recherche de première étape","L'élément pertinent entre-t-il dans l'ensemble de candidats ?","Recall@k",[683,684,685],"Classement","À quelle hauteur apparaît la preuve pertinente ?","MRR, nDCG, precision@k",[687,688,689],"Reranking","Le scoring de deuxième étape améliore-t-il l'ordre ?","Delta nDCG \u002F MRR \u002F precision",[691,692,693],"Sélection du contexte","Les passages finaux sélectionnés contiennent-ils un support suffisant ?","Pertinence \u002F couverture du contexte",[695,696,697],"Étape de réponse","Le modèle utilise-t-il correctement les preuves sélectionnées ?","Fidélité \u002F évaluation affirmation-preuve",{},{"id":700,"data":701,"type":218,"tunes":703},"p-eval-1",{"text":702},"Cette séparation est opérationnellement importante. Si Recall@50 est faible, le reranker n'est pas le premier composant à corriger. Si Recall@50 est élevé mais que le meilleur passage reste au rang 38, le reranking ou la fusion de classements devient une cible plausible.",{},{"id":705,"data":706,"type":42,"tunes":708},"h-failure-map",{"text":707,"level":247},"Quelle couche a réellement échoué ?",{},{"id":710,"data":711,"type":373,"tunes":744},"failure-comparison",{"rows":712,"title":733,"layout":362,"columns":734},[713,717,721,725,729],{"id":714,"label":715,"values":716},"missed","Le document pertinent n'apparaît jamais",[344,344,344],{"id":718,"label":719,"values":720},"lowrank","Le document pertinent apparaît trop bas",[344,344,344],{"id":722,"label":723,"values":724},"wrongtenant","Résultat sémantiquement bon mais interdit",[344,344,344],{"id":726,"label":727,"values":728},"stale","Résultat pertinent mais obsolète",[344,344,344],{"id":730,"label":731,"values":732},"context","Résultat correct récupéré mais omis du prompt",[344,344,344],"Symptômes et couche de récupération probable",[735,738,741],{"id":736,"label":737},"symptom","Symptôme observé",{"id":739,"label":740},"likely","Couche probable",{"id":742,"label":743},"test","Premier diagnostic",{},{"id":746,"data":747,"type":42,"tunes":749},"h-authority",{"text":748,"level":247},"Pertinence et Source de Vérité sont différentes",{},{"id":751,"data":752,"type":218,"tunes":754},"p-authority-1",{"text":753},"Un reranker peut faire paraître un document obsolète extrêmement pertinent. Un index vectoriel peut récupérer un résumé secondaire qui est sémantiquement plus proche que la source primaire. La qualité de la récupération ne peut donc pas remplacer les règles d'autorité.",{},{"id":756,"data":757,"type":218,"tunes":759},"p-authority-2",{"text":758},"Là où l'autorité de la source importe, les filtres de métadonnées, les classes de sources, les règles de version et la provenance devraient contraindre la récupération avant que le résultat ne devienne un contexte de modèle.",{},{"id":761,"data":762,"type":226,"tunes":765},"authority-callout",{"body":763,"title":764,"variant":233},"La pertinence répond à la question de savoir si un candidat correspond à la requête. L'architecture de Source de Vérité répond à la question de savoir si ce candidat est autorisé à établir l'affirmation.","Le reranking ne peut pas rendre une source non autoritaire autoritaire",{},{"id":767,"data":768,"type":42,"tunes":770},"h-impl",{"text":769,"level":247},"Preuves d'implémentation originales",{},{"id":772,"data":773,"type":42,"tunes":775},"h-sot-engine",{"text":774,"level":246},"Moteur de Recherche de Source de Vérité : la récupération lexicale et sémantique sont séparées",{},{"id":777,"data":778,"type":218,"tunes":780},"p-sot-1",{"text":779},"Le Moteur de Recherche de Source de Vérité contient un chemin de récupération lexicale local utilisant SQLite FTS5\u002FBM25 et un chemin de récupération sémantique optionnel séparé utilisant des embeddings générés localement.",{},{"id":782,"data":783,"type":218,"tunes":785},"p-sot-2",{"text":784},"Son implémentation de recherche sémantique calcule un vecteur de requête et le compare avec les vecteurs de chunks stockés en utilisant la similarité cosinus. Le projet traite délibérément la similarité sémantique comme un signal de découverte plutôt que comme une preuve : un candidat doit encore être retracé jusqu'à une source et un localisateur concrets avant de pouvoir soutenir une affirmation.",{},{"id":787,"data":788,"type":218,"tunes":790},"p-sot-3",{"text":789},"C'est une preuve d'implémentation utile pour R01 car le même corpus peut soutenir le classement lexical et la similarité vectorielle sans confondre l'un ou l'autre mécanisme avec l'autorité probante.",{},{"id":792,"data":793,"type":42,"tunes":795},"h-client",{"text":794,"level":246},"Client IA Aaasaasa : Qdrant est un composant d'infrastructure vectorielle",{},{"id":797,"data":798,"type":218,"tunes":800},"p-client-1",{"text":799},"Le Client IA Aaasaasa inclut l'infrastructure Qdrant\u002Fvectorielle comme une ressource locale séparée. L'architecture Electron expose les services Qdrant depuis le côté processus principal de confiance plutôt que de traiter la recherche vectorielle comme faisant partie du modèle lui-même.",{},{"id":802,"data":803,"type":218,"tunes":805},"p-client-2",{"text":804},"Le dépôt contient un adaptateur client Qdrant, une configuration de service Qdrant et une infrastructure Qdrant basée sur Docker. Cela démontre la séparation architecturale entre l'exécution du fournisseur\u002Fmodèle IA et le stockage\u002Frecherche vectorielle.",{},{"id":807,"data":808,"type":218,"tunes":810},"p-client-3",{"text":809},"L'existence du support Qdrant ne doit pas être surestimée comme un pipeline RAG de production complet. La preuve ici est plus étroite : l'infrastructure vectorielle est implémentée comme sa propre frontière de composant.",{},{"id":812,"data":813,"type":362,"tunes":836},"impl-table",{"content":814,"stretched":43,"withHeadings":14},[815,818,821,824,827,830,833],[816,817],"Preuve d'implémentation","Ce que cela démontre",[819,820],"SQLite FTS5\u002FBM25 dans le Moteur de Recherche de Source de Vérité","La récupération lexicale peut exister indépendamment des embeddings.",[822,823],"Embeddings Ollama locaux","La génération de représentation est sa propre étape.",[825,826],"Vecteurs sémantiques stockés + comparaison cosinus","La récupération sémantique consomme les embeddings après qu'ils ont été produits.",[828,829],"Support Qdrant dans le Client IA Aaasaasa","Le stockage\u002Frecherche vectorielle est une capacité d'infrastructure séparée du fournisseur de modèle.",[831,832],"Règles de preuve\u002Fprovenance dans le Moteur de Recherche de Source de Vérité","La similarité récupérée n'égale pas l'autorité ou la preuve.",[834,835],"Aucun reranker personnalisé revendiqué dans ces implémentations","Le reranking est expliqué comme une étape architecturale, non faussement revendiqué comme une preuve déjà implémentée.",{},{"id":838,"data":839,"type":226,"tunes":842},"impl-discipline",{"body":840,"title":841,"variant":240},"Les preuves d'implémentation actuelles confirment la récupération lexicale, les embeddings, l'infrastructure de recherche vectorielle et la récupération sensible à la provenance. Cet article ne \u003Cstrong>prétend pas\u003C\u002Fstrong> qu'un service de reranking cross-encoder de production est déjà implémenté dans ces projets.","Limite de preuve",{},{"id":844,"data":845,"type":42,"tunes":847},"h-decisions",{"text":846,"level":247},"Quand avez-vous besoin de chaque composant ?",{},{"id":849,"data":850,"type":362,"tunes":878},"decision-table",{"content":851,"stretched":43,"withHeadings":14},[852,855,858,861,864,867,869,872,875],[853,854],"Besoin","Composant probable",[856,857],"Similarité sémantique entre différentes formulations","Modèle d'embedding + recherche par similarité vectorielle",[859,860],"Recherche efficace sur un grand corpus vectoriel","Index\u002Fbase de données vectorielle ou moteur de recherche compatible vecteurs",[862,863],"Identifiants exacts, codes d'erreur ou termes rares","Récupération lexicale\u002Fplein texte telle que BM25",[865,866],"À la fois terminologie exacte et sens sémantique","Récupération hybride lexicale + sémantique",[868,372],"L'ensemble de candidats est bon mais l'ordonnancement est faible",[870,871],"Les éléments pertinents sont absents de l'ensemble de candidats","Améliorer la couverture des sources, le chunking, le retriever, les filtres ou le nombre de candidats avant le reranking",[873,874],"Contraintes strictes de locataire\u002Fsource\u002Fversion","Filtrage déterministe des métadonnées\u002Fautorisations",[876,877],"Petit corpus","Potentiellement une simple similarité par force brute ou une base de données généraliste plutôt qu'une base de données vectorielle dédiée",{},{"id":880,"data":881,"type":42,"tunes":883},"h-sequence",{"text":882,"level":247},"Une séquence pratique de conception de la récupération",{},{"id":885,"data":886,"type":314,"tunes":919},"design-flow",{"steps":887,"title":918,"orientation":313},[888,891,894,897,900,903,906,909,912,915],{"label":889,"description":890},"1. Définir les types de requêtes","Identifier les questions sémantiques, les recherches exactes, les identifiants, les lectures d'état actuel et les motifs spécifiques au domaine.",{"label":892,"description":893},"2. Définir les sources éligibles","Appliquer les contraintes de locataire, d'autorisation, de locale, de version, de classe de source et de fraîcheur.",{"label":895,"description":896},"3. Établir une base lexicale","Mesurer si une simple récupération plein texte\u002FBM25 résout déjà une grande partie de la charge de travail.",{"label":898,"description":899},"4. Ajouter des embeddings là où le rappel sémantique est nécessaire","Choisir et évaluer un modèle d'embedding sur des requêtes représentatives du domaine.",{"label":901,"description":902},"5. Choisir le stockage\u002Findexation vectorielle selon l'échelle","Utiliser la force brute, le support vectoriel d'une base de données ou un moteur vectoriel dédié selon les exigences.",{"label":904,"description":905},"6. Évaluer le rappel de premier étage","Confirmer que les preuves pertinentes entrent dans un ensemble de candidats suffisamment grand.",{"label":907,"description":908},"7. Ajouter une récupération hybride si les signaux sont complémentaires","Fusionner les classements lexicaux et sémantiques lorsque les deux améliorent matériellement la génération de candidats.",{"label":910,"description":911},"8. Ajouter un reranking si l'ordonnancement reste le goulot d'étranglement","Appliquer le modèle plus fort uniquement à l'ensemble de candidats où son coût est justifié.",{"label":913,"description":914},"9. Ajuster la sélection finale du contexte","Contrôler la redondance, le budget de contexte, l'autorité, la diversité et la couverture des preuves avant la génération.",{"label":916,"description":917},"10. Évaluer de bout en bout","Mesurer séparément la qualité de la récupération, du contexte et de la réponse afin de localiser les défaillances.","Concevoir la récupération à partir des exigences, pas des noms de produits",{},{"id":921,"data":922,"type":42,"tunes":924},"h-misconceptions",{"text":923,"level":247},"Idées fausses courantes",{},{"id":926,"data":927,"type":362,"tunes":962},"misconceptions-table",{"content":928,"stretched":43,"withHeadings":14},[929,932,935,938,941,944,947,950,953,956,959],[930,931],"Idée fausse","Correction",[933,934],"« Un embedding est une base de données vectorielle. »","Un embedding est une représentation ; la base de données\u002Fl'index stocke et recherche des représentations.",[936,937],"« Une base de données vectorielle crée le sens sémantique. »","Le modèle d'embedding crée la représentation ; le système vectoriel l'indexe et la compare.",[939,940],"« Le RAG nécessite une base de données vectorielle. »","Le RAG nécessite une récupération, pas une technologie de récupération spécifique.",[942,943],"« Le reranking est identique à la recherche vectorielle. »","La recherche vectorielle génère des candidats ; le reranking réordonne un ensemble de candidats.",[945,946],"« Les rerankers corrigent un mauvais rappel. »","Ils ne peuvent pas promouvoir un document qui n'a jamais été récupéré.",[948,949],"« La recherche dense remplace BM25. »","La recherche lexicale reste précieuse pour les termes exacts, les identifiants et le vocabulaire spécialisé.",[951,952],"« Une similarité plus élevée signifie plus d'autorité. »","La similarité et l'autorité de la source sont des dimensions différentes.",[954,955],"« Un top-k plus grand améliore toujours le RAG. »","Des ensembles de candidats plus grands peuvent améliorer le rappel mais ajoutent de la latence, du bruit et une charge de sélection du contexte.",[957,958],"« Un seul seuil de score fonctionne partout. »","Les scores dépendent du modèle, de la requête, du corpus et de la méthode de récupération et doivent être calibrés.",[960,961],"« Une base de données vectorielle dédiée est toujours plus avancée. »","Elle n'est justifiée que lorsque ses capacités opérationnelles et de récupération correspondent aux exigences.",{},{"id":964,"data":965,"type":42,"tunes":967},"h-edge",{"text":966,"level":247},"Cas limites et limitations",{},{"id":969,"data":970,"type":218,"tunes":972},"p-edge-1",{"text":971},"Certaines applications n'ont pas besoin de recherche sémantique. Une recherche exacte en base de données ou du SQL structuré peut être plus correct, plus rapide et plus facile à auditer que la récupération par embeddings.",{},{"id":974,"data":975,"type":218,"tunes":977},"p-edge-2",{"text":976},"Certains corpus sont si petits qu'un balayage vectoriel complet est acceptable. L'indexation approximative ajoute de la complexité sans bénéfice significatif.",{},{"id":979,"data":980,"type":218,"tunes":982},"p-edge-3",{"text":981},"Certaines requêtes nécessitent un rappel élevé avant toute optimisation de précision. La découverte juridique, la recherche et l'examen de conformité peuvent préférer une récupération large de candidats suivie d'un filtrage transparent et d'une revue humaine.",{},{"id":984,"data":985,"type":218,"tunes":987},"p-edge-4",{"text":986},"La récupération multilingue et spécifique à un domaine peut se comporter très différemment selon les modèles d'embedding. Les affirmations de performance issues de jeux de données publics ne doivent pas être considérées comme une preuve pour un corpus privé.",{},{"id":989,"data":990,"type":218,"tunes":992},"p-edge-5",{"text":991},"La latence du reranking augmente avec le nombre et la longueur des candidats. La taille des candidats doit donc être ajustée comme une variable de précision\u002Fcoût\u002Flatence plutôt que copiée d'un tutoriel.",{},{"id":994,"data":995,"type":42,"tunes":997},"h-change",{"text":996,"level":247},"Qu'est-ce qui changerait cette réponse ?",{},{"id":999,"data":1000,"type":218,"tunes":1002},"p-change-1",{"text":1001},"Les frontières entre composants ne changeraient pas si un fournisseur regroupait la génération d'embeddings, l'indexation vectorielle et le reranking derrière une seule API. Le produit peut masquer les étapes, mais elles restent conceptuellement des responsabilités différentes avec des modes de défaillance différents.",{},{"id":1004,"data":1005,"type":218,"tunes":1007},"p-change-2",{"text":1006},"De futurs modèles d'embedding ou de récupération pourraient réduire le besoin d'un reranking séparé dans certaines charges de travail, tandis que des méthodes plus fortes d'interaction tardive ou d'apprentissage creux peuvent brouiller les catégories traditionnelles dense\u002Flexicale. L'architecture devrait toujours se demander quelle étape produit les représentations, quelle étape génère les candidats et quelle étape affine le classement.",{},{"id":1009,"data":1010,"type":218,"tunes":1012},"p-change-3",{"text":1011},"La meilleure conception change aussi avec la taille du corpus, le mélange de requêtes, la langue, la terminologie du domaine, la fréquence de mise à jour, l'autorité des sources, le budget de latence et les résultats d'évaluation.",{},{"id":1014,"data":1015,"type":42,"tunes":1017},"h-related",{"text":1016,"level":247},"Connaissances canoniques associées",{},{"id":1019,"data":1020,"type":218,"tunes":1022},"p-related-1",{"text":1021},"R01 suppose que le concept de base du RAG est déjà compris. Le RAG est le modèle plus large dans lequel des informations externes récupérées sont fournies à un modèle ; les embeddings, la recherche vectorielle et le reranking sont des composants de récupération optionnels à l'intérieur de ce modèle.",{},{"id":1024,"data":1025,"type":1030,"tunes":1031},"ref-rag",{"url":1026,"title":1027,"excerpt":1028,"ctaLabel":1029},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works","Qu'est-ce que le RAG ? L'explication la plus simple de son fonctionnement","Une base en langage clair sur la manière dont la recherche apporte des connaissances externes dans le contexte du modèle.","Lire les fondements du RAG","referralArticle",{},{"id":1033,"data":1034,"type":218,"tunes":1036},"p-related-2",{"text":1035},"Lorsque la recherche échoue, diagnostiquez séparément la couverture des sources, la recherche, le classement, l'assemblage du contexte et la génération plutôt que de traiter l'ensemble du système comme un seul « échec du RAG ».",{},{"id":1038,"data":1039,"type":1030,"tunes":1044},"ref-rag-failed",{"url":1040,"title":1041,"excerpt":1042,"ctaLabel":1043},"https:\u002F\u002Fstajic.de\u002Ffr\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","Le RAG a échoué — mais quelle couche a réellement échoué ? Une méthode de diagnostic","Une méthode couche par couche pour isoler les défaillances de couverture des sources, de recherche, de classement, d'assemblage du contexte, de génération, d'attribution des preuves et de fraîcheur.","Lire la méthode de diagnostic du RAG",{},{"id":1046,"data":1047,"type":218,"tunes":1049},"p-related-3",{"text":1048},"L'architecture de source de vérité est la couche d'autorité autour de la recherche : elle décide quelle source peut établir une affirmation, tandis que les embeddings et le classement décident seulement quels candidats semblent pertinents.",{},{"id":1051,"data":1052,"type":42,"tunes":1054},"h-faq",{"text":1053,"level":247},"Questions fréquentes",{},{"id":1056,"data":1057,"type":1056,"tunes":1092},"faq",{"items":1058,"title":1091},[1059,1063,1067,1071,1075,1079,1083,1087],{"id":1060,"answer":1061,"question":1062},"faq1","Les embeddings sont des représentations numériques produites par un modèle. Une base de données vectorielle ou un index vectoriel stocke et recherche ces représentations avec des identifiants et des métadonnées.","Quelle est la différence entre les embeddings et une base de données vectorielle ?",{"id":1064,"answer":1065,"question":1066},"faq2","Un reclassificateur prend un ensemble de candidats déjà récupérés et renote ou réordonne ces candidats à l'aide d'un modèle de pertinence ou d'une méthode de notation plus puissante.","Que fait un reclassificateur ?",{"id":1068,"answer":1069,"question":1070},"faq3","Non. Le RAG nécessite la récupération d'informations externes. La récupération peut utiliser la recherche lexicale, SQL, des API, des graphes, la recherche vectorielle, la recherche hybride ou des combinaisons de celles-ci.","Le RAG nécessite-t-il une base de données vectorielle ?",{"id":1072,"answer":1073,"question":1074},"faq4","Les reclassificateurs effectuent généralement une interaction requête-document plus coûteuse, ils sont donc habituellement appliqués à un petit ensemble de candidats top-k après un récupérateur de premier étage plus rapide.","Pourquoi ne pas utiliser le reclassificateur sur l'ensemble du corpus ?",{"id":1076,"answer":1077,"question":1078},"faq5","Non. Si le document pertinent n'a pas été récupéré dans l'ensemble de candidats, le reclassement n'a rien à promouvoir.","Le reclassement peut-il corriger un document manquant ?",{"id":1080,"answer":1081,"question":1082},"faq6","Non. C'est une mesure de similarité dont la signification numérique dépend du modèle d'embedding et du corpus. Elle ne doit pas être traitée comme une probabilité universelle de pertinence.","La similarité cosinus est-elle une probabilité de pertinence ?",{"id":1084,"answer":1085,"question":1086},"faq7","Utilisez la recherche hybride lorsque l'évaluation montre que les signaux lexicaux et sémantiques récupèrent des documents pertinents complémentaires. Elle n'est pas automatiquement meilleure pour tous les corpus.","Dois-je utiliser BM25 et la recherche vectorielle ensemble ?",{"id":1088,"answer":1089,"question":1090},"faq8","Lorsque l'indexation vectorielle, le filtrage, l'échelle, les mises à jour, l'exploitation distribuée ou d'autres exigences spécifiques aux vecteurs justifient un système spécialisé. Les petites charges de travail peuvent ne pas en avoir besoin.","Quand ai-je besoin d'une base de données vectorielle dédiée ?","Embeddings, bases de données vectorielles et reclassement",{},{"id":1094,"data":1095,"type":42,"tunes":1097},"h-glossary",{"text":1096,"level":247},"Glossaire",{},{"id":1099,"data":1100,"type":1099,"tunes":1156},"glossary",{"title":1101,"entries":1102},"Termes clés de la recherche",[1103,1105,1109,1113,1117,1121,1125,1129,1133,1137,1141,1145,1149,1152],{"term":366,"anchor":365,"definition":1104},"Une représentation numérique de contenu produite par un modèle d'embedding pour la similarité, le regroupement, la recherche ou des tâches connexes.",{"term":1106,"anchor":1107,"definition":1108},"Vecteur dense","dense-vector","Une représentation vectorielle dans laquelle de nombreuses dimensions portent des valeurs non nulles, couramment utilisée en recherche sémantique.",{"term":1110,"anchor":1111,"definition":1112},"Vecteur creux","sparse-vector","Une représentation de grande dimension dans laquelle la plupart des dimensions sont nulles, préservant souvent une structure plus proche des tokens ou des termes.",{"term":1114,"anchor":1115,"definition":1116},"Index vectoriel","vector-index","Une structure de données qui organise les vecteurs pour une recherche efficace par similarité ou plus proches voisins.",{"term":1118,"anchor":1119,"definition":1120},"Base de données vectorielle","vector-database","Un système de stockage\u002Frecherche conçu pour gérer les vecteurs, les métadonnées associées et les charges de travail de recherche vectorielle.",{"term":1122,"anchor":1123,"definition":1124},"ANN","ann","Recherche approximative des plus proches voisins, qui échange une comparaison exhaustive exacte contre une recherche plus rapide à grande échelle.",{"term":1126,"anchor":1127,"definition":1128},"HNSW","hnsw","Hierarchical Navigable Small World, une approche d'indexation approximative des plus proches voisins basée sur un graphe, largement utilisée pour la recherche vectorielle.",{"term":1130,"anchor":1131,"definition":1132},"BM25","bm25","Une méthode de classement de pertinence lexicale basée sur l'occurrence des termes et les statistiques du corpus, largement utilisée en recherche plein texte.",{"term":1134,"anchor":1135,"definition":1136},"Recherche hybride","hybrid-search","Recherche qui combine les résultats ou les scores de plusieurs méthodes de récupération telles que la recherche lexicale et vectorielle.",{"term":1138,"anchor":1139,"definition":1140},"Reclassement","reranking","Une étape de recherche ultérieure qui renote et réordonne un ensemble de candidats déjà généré.",{"term":1142,"anchor":1143,"definition":1144},"Bi-encodeur","bi-encoder","Une architecture qui encode la requête et le candidat indépendamment, permettant le précalcul et une recherche de similarité évolutive.",{"term":1146,"anchor":1147,"definition":1148},"Cross-encodeur","cross-encoder","Un modèle qui traite conjointement une requête et un texte candidat, améliorant souvent le jugement de pertinence à un coût de calcul plus élevé.",{"term":681,"anchor":1150,"definition":1151},"recall-at-k","La fraction d'éléments pertinents récupérés parmi les k meilleurs candidats récupérés.",{"term":1153,"anchor":1154,"definition":1155},"nDCG","ndcg","Normalized Discounted Cumulative Gain, une métrique de classement qui récompense les résultats pertinents apparaissant plus haut dans une liste ordonnée.",{},{"id":1158,"data":1159,"type":42,"tunes":1161},"h-conclusion",{"text":1160,"level":247},"Conclusion",{},{"id":1163,"data":1164,"type":218,"tunes":1166},"p-conclusion-1",{"text":1165},"Le modèle de recherche clair est simple : les embeddings représentent le sens, la recherche vectorielle récupère les candidats, et les reclassificateurs affinent l'ordre des candidats.",{},{"id":1168,"data":1169,"type":218,"tunes":1171},"p-conclusion-2",{"text":1170},"Une fois ces frontières explicites, les décisions d'architecture deviennent plus faciles à diagnostiquer. Les candidats manquants pointent vers la couverture des sources, le découpage, les embeddings, les filtres ou la recherche de premier étage. Un mauvais ordonnancement pointe vers le classement, la fusion ou le reclassement. Les réponses finales incorrectes peuvent alors être étudiées séparément au niveau du contexte et de la génération.",{},{"id":1173,"data":1174,"type":218,"tunes":1176},"p-conclusion-3",{"text":1175},"Le résultat le plus important n'est pas de choisir le composant de recherche le plus à la mode. C'est de construire un pipeline de recherche dont les étapes, les frontières d'autorité, les métriques et les modes de défaillance peuvent être mesurés indépendamment.",{},{"id":1178,"data":1179,"type":42,"tunes":1181},"h-sources",{"text":1180,"level":247},"Sources primaires et preuves de mise en œuvre",{},{"id":1183,"data":1184,"type":218,"tunes":1186},"p-sources-note",{"text":1185},"Les références externes ci-dessous documentent les mécanismes de représentation, de recherche vectorielle et de reclassement utilisés dans cet article. Les sections spécifiques au projet sont des preuves de mise en œuvre originales et sont intentionnellement plus étroites que des affirmations sur la maturité complète d'un RAG en production.",{},{"id":1188,"data":1189,"type":1195,"tunes":1196},"src-sbert",{"link":1190,"meta":1191},"https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.10084",{"image":1192,"title":1193,"description":1194},{"url":344},"Sentence-BERT : plongements de phrases à l'aide de réseaux BERT siamois","Article fondateur démontrant des plongements de phrases calculables indépendamment pour une recherche efficace de similarité sémantique.","linkTool",{},{"id":1198,"data":1199,"type":1195,"tunes":1205},"src-qdrant-overview",{"link":1200,"meta":1201},"https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Foverview\u002F",{"image":1202,"title":1203,"description":1204},{"url":344},"Qdrant — Aperçu de l'architecture et des structures de données","Documentation officielle décrivant les collections, les points, les vecteurs, les métadonnées de charge utile et l'indexation de similarité basée sur HNSW.",{},{"id":1207,"data":1208,"type":1195,"tunes":1214},"src-qdrant-search",{"link":1209,"meta":1210},"https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fsearch\u002Fsearch\u002F",{"image":1211,"title":1212,"description":1213},{"url":344},"Qdrant — Recherche","Documentation officielle de recherche vectorielle couvrant les requêtes de similarité, le filtrage, la recherche exacte versus approximative et le comportement dense\u002Fcreux.",{},{"id":1216,"data":1217,"type":1195,"tunes":1223},"src-elastic-vector",{"link":1218,"meta":1219},"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Fvector",{"image":1220,"title":1221,"description":1222},{"url":344},"Elastic — Recherche vectorielle","Documentation actuelle sur la récupération vectorielle dense\u002Fcreuse, les combinaisons lexicales\u002Fvectorielles et les pipelines de recherche multi-étapes.",{},{"id":1225,"data":1226,"type":1195,"tunes":1232},"src-elastic-rerank",{"link":1227,"meta":1228},"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Franking\u002Fsemantic-reranking",{"image":1229,"title":1230,"description":1231},{"url":344},"Elastic — Reclassement sémantique","Recommandations actuelles définissant le reclassement sémantique comme une opération de pertinence ultérieure sur un ensemble de candidats plus restreint.",{},{"id":1234,"data":1235,"type":1195,"tunes":1241},"src-cohere-rerank",{"link":1236,"meta":1237},"https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Freranking-with-cohere",{"image":1238,"title":1239,"description":1240},{"url":344},"Cohere — Reclassement avec Cohere","Documentation actuelle montrant le reclassement comme une amélioration de second niveau par rapport à une récupération de premier niveau lexicale ou sémantique.",{},{"id":1243,"data":1244,"type":1195,"tunes":1250},"src-sqlite-fts5",{"link":1245,"meta":1246},"https:\u002F\u002Fwww.sqlite.org\u002Ffts5.html",{"image":1247,"title":1248,"description":1249},{"url":344},"SQLite FTS5","Documentation officielle de SQLite pour la recherche en texte intégral et la fonction de classement BM25 intégrée utilisée comme preuve de récupération lexicale.",{},"2.31","Les embeddings représentent le sens, les bases de données vectorielles récupèrent des candidats, et les rerankers affinent les résultats. Découvrez comment ces trois couches de récupération diffèrent et fonctionnent ensemble dans le RAG.","\u002Fuploads\u002F2026\u002F10\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval-1791480129884-9dtasz.webp","vector-databases-embeddings-and-reranking-three-different-parts-of-retrieval-1791480129884-9dtasz","PUBLISHED","2026-10-08T11:21:00.000Z","2026-10-08T17:21:30.174Z","2026-10-08T20:06:31.300Z",{"en":1260,"de":1261,"sr":1262,"es":1263,"fr":1264,"it":1265,"ru":1266,"zh":1267},"\u002Fblog\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u002Fde\u002Fblog\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u002Fsr\u002Fblog\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u002Fes\u002Fblog\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u002Ffr\u002Fblog\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u002Fit\u002Fblog\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u002Fru\u002Fblog\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u002Fzh\u002Fblog\u002Fvector-databases-embeddings-and-reranking-three-different-parts-of-retrieval",[1269,1273,1277],{"id":1270,"name":1271,"slug":1272},64,"Architecture de l’information","information-architecture",{"id":1274,"name":1275,"slug":1276},60,"Contrôles de coût et latence","cost-and-latency",{"id":1278,"name":1279,"slug":1280},57,"Limites des données","data-boundaries",{"id":1282,"login":1283,"email":1284,"displayName":1285},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[1287,2130],{"lang":1288,"title":1289,"content":1290,"contentJson":1291,"excerpt":2129},"en","Vector Databases, Embeddings and Reranking: Three Different Parts of Retrieval","{\"time\":1791489989811,\"blocks\":[{\"id\":\"intro\",\"type\":\"paragraph\",\"data\":{\"text\":\"Embeddings, vector databases and rerankers are three different parts of retrieval. An embedding model converts text or other data into numerical representations; a vector database or vector index stores and searches those representations to retrieve candidate items; a reranker takes a smaller candidate set and reorders it using a more expensive relevance model or scoring method. They often appear together in RAG, but none of them is the same thing as RAG, and none is mandatory in every retrieval system.\"},\"tunes\":{}},{\"id\":\"direct\",\"type\":\"callout\",\"data\":{\"variant\":\"info\",\"title\":\"Direct answer\",\"body\":\"\u003Cstrong>Embeddings represent. Vector search retrieves. Reranking refines.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>A useful mental model is:\u003Cbr>\u003Cstrong>content → embedding → candidate retrieval → reranking → selected context → model\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>The boundaries matter because each layer fails differently. Bad embeddings distort semantic similarity. A weak retrieval index misses useful candidates. A reranker can reorder candidates, but it cannot recover a relevant document that was never retrieved.\"},\"tunes\":{}},{\"id\":\"boundary\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Do not collapse the retrieval stack\",\"body\":\"A vector database is not an embedding model. An embedding is not a search result. A reranker is not a vector database. RAG is the wider pattern that can use any of these components to retrieve external information before generation.\"},\"tunes\":{}},{\"id\":\"current\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"Current-source note — 8 October 2026\",\"body\":\"The basic architecture is stable even though products evolve rapidly. Current Qdrant documentation separates vectors, payload metadata, collections and vector indexes; current Elastic guidance treats semantic reranking as a later-stage operation over a small candidate set; current Cohere documentation likewise describes reranking as a second-stage improvement over lexical or semantic search.\"},\"tunes\":{}},{\"id\":\"toc\",\"type\":\"tableOfContents\",\"data\":{\"title\":\"Contents\",\"minLevel\":2,\"maxLevel\":3},\"tunes\":{}},{\"id\":\"h-meaning\",\"type\":\"header\",\"data\":{\"text\":\"What this really means\",\"level\":2},\"tunes\":{}},{\"id\":\"p-meaning-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Search systems have two competing goals: find enough potentially relevant material and put the best material near the top. Fast first-stage retrieval usually optimizes candidate generation. A stronger second-stage model can then spend more computation distinguishing the best candidates.\"},\"tunes\":{}},{\"id\":\"p-meaning-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Embeddings, vector indexes and rerankers occupy different positions in that process. Treating them as one feature hides important design choices about recall, precision, latency, storage, metadata filtering and model cost.\"},\"tunes\":{}},{\"id\":\"p-meaning-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The distinction also prevents a common RAG mistake: assuming that storing document embeddings in a vector database automatically creates high-quality retrieval. Retrieval quality depends on the embedding model, chunking, metadata, query construction, index configuration, candidate count, hybrid retrieval, reranking and the authority of the underlying sources.\"},\"tunes\":{}},{\"id\":\"h-simple\",\"type\":\"header\",\"data\":{\"text\":\"The simplest example\",\"level\":2},\"tunes\":{}},{\"id\":\"p-simple-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Suppose a knowledge base contains 100,000 document chunks. A user asks: “How do I revoke an API token?”\"},\"tunes\":{}},{\"id\":\"p-simple-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"First, an embedding model can encode the query into a vector. Document chunks may already have their own stored embeddings. A vector search then compares the query vector to the indexed document vectors and returns, for example, 30 likely candidates.\"},\"tunes\":{}},{\"id\":\"p-simple-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Those 30 candidates can then be passed to a reranker. The reranker compares the query more directly with each candidate and produces a new relevance ordering. The application might keep the best five for the model context.\"},\"tunes\":{}},{\"id\":\"simple-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"A basic two-stage semantic retrieval pipeline\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Embed documents\",\"description\":\"Convert each searchable chunk into a numerical representation, usually at ingest time.\"},{\"label\":\"2. Store\u002Findex vectors\",\"description\":\"Associate vectors with document IDs and metadata in a searchable vector index or database.\"},{\"label\":\"3. Embed the query\",\"description\":\"Encode the user's query using the compatible embedding model and query configuration.\"},{\"label\":\"4. Retrieve candidates\",\"description\":\"Run vector similarity search, often with metadata filters, to produce a larger top-k candidate set.\"},{\"label\":\"5. Rerank candidates\",\"description\":\"Apply a stronger relevance model to the query and the small candidate set.\"},{\"label\":\"6. Select context\",\"description\":\"Keep the most useful passages for the downstream answer, agent step or search result.\"}]},\"tunes\":{}},{\"id\":\"h-stops\",\"type\":\"header\",\"data\":{\"text\":\"Where the simple example stops\",\"level\":2},\"tunes\":{}},{\"id\":\"p-stops-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Real retrieval systems do not have to use dense embeddings at all. Keyword search such as BM25 can be the first-stage retriever. Sparse learned retrieval, SQL filters, graph traversal or application APIs can also generate candidates.\"},\"tunes\":{}},{\"id\":\"p-stops-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A reranker also does not care that the candidates came from a vector database. It can rerank BM25 results, hybrid results, hand-selected documents or candidates from multiple retrievers.\"},\"tunes\":{}},{\"id\":\"p-stops-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Likewise, embeddings do not require a specialized vector database. Small datasets can be compared in memory or with general-purpose databases and vector extensions. Specialized vector systems become useful when indexing, approximate nearest-neighbor search, filtering, scale, update behavior or operational requirements justify them.\"},\"tunes\":{}},{\"id\":\"core-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Three different retrieval components\",\"layout\":\"table\",\"columns\":[{\"id\":\"embedding\",\"label\":\"Embedding\"},{\"id\":\"vector\",\"label\":\"Vector database \u002F index\"},{\"id\":\"reranker\",\"label\":\"Reranker\"}],\"rows\":[{\"id\":\"job\",\"label\":\"Primary job\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"input\",\"label\":\"Typical input\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"output\",\"label\":\"Typical output\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"cost\",\"label\":\"Cost profile\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"can-miss\",\"label\":\"Typical failure\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"h-embeddings\",\"type\":\"header\",\"data\":{\"text\":\"Embeddings: representation, not retrieval\",\"level\":2},\"tunes\":{}},{\"id\":\"p-emb-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"An embedding is a numerical representation produced by a model. For semantic retrieval, texts with related meaning are intended to occupy useful positions in a vector space so that a similarity or distance function can compare them.\"},\"tunes\":{}},{\"id\":\"p-emb-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Sentence-BERT was an influential step in making sentence-level semantic similarity practical with bi-encoder-style representations that can be computed independently and compared efficiently. The general idea remains central to modern dense retrieval: precompute document representations, compute the query representation at search time, then compare them.\"},\"tunes\":{}},{\"id\":\"p-emb-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The embedding itself does not search a corpus. It is data produced by an embedding model. Retrieval begins when the system compares the query representation against stored candidates.\"},\"tunes\":{}},{\"id\":\"h-embedding-model\",\"type\":\"header\",\"data\":{\"text\":\"The embedding model defines the representation space\",\"level\":3},\"tunes\":{}},{\"id\":\"p-emodel-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Document and query vectors must be compatible with the model and configuration used to create them. Replacing an embedding model can change dimensionality, similarity behavior, language coverage and domain performance.\"},\"tunes\":{}},{\"id\":\"p-emodel-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"That is why an embedding-model migration is not merely an API-name change. Existing documents may need to be re-embedded and the index rebuilt or versioned.\"},\"tunes\":{}},{\"id\":\"h-dense-sparse\",\"type\":\"header\",\"data\":{\"text\":\"Dense and sparse representations are different\",\"level\":3},\"tunes\":{}},{\"id\":\"p-dense-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Dense embeddings usually contain many non-zero dimensions and are commonly used for semantic similarity. Sparse representations contain many zeros and can preserve stronger token- or term-like structure.\"},\"tunes\":{}},{\"id\":\"p-dense-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Both can support semantic retrieval, and modern search systems can combine dense, sparse and lexical signals. “Vector search” therefore does not always mean one dense cosine-similarity pipeline.\"},\"tunes\":{}},{\"id\":\"h-distance\",\"type\":\"header\",\"data\":{\"text\":\"Similarity functions are part of the representation contract\",\"level\":3},\"tunes\":{}},{\"id\":\"p-distance-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Cosine similarity, dot product and Euclidean distance do not mean the same thing. The correct metric depends on how the embedding model was trained and normalized.\"},\"tunes\":{}},{\"id\":\"p-distance-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Current Qdrant documentation, for example, requires a distance metric as part of vector configuration and documents cosine, dot-product and Euclidean-style choices. The important architectural rule is to treat the metric as part of the embedding\u002Findex contract rather than choose one arbitrarily.\"},\"tunes\":{}},{\"id\":\"embedding-not-truth\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Embedding similarity is not factual support\",\"body\":\"Two passages can be semantically close while one is stale, unauthorized or wrong. Embeddings estimate representational similarity; they do not determine Source-of-Truth authority, freshness or evidentiary validity.\"},\"tunes\":{}},{\"id\":\"h-vector-db\",\"type\":\"header\",\"data\":{\"text\":\"Vector databases and indexes: candidate retrieval\",\"level\":2},\"tunes\":{}},{\"id\":\"p-vdb-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A vector database or vector-capable search system organizes vector representations so the application can retrieve nearby candidates efficiently. Practical systems usually associate vectors with IDs and payload metadata such as source, language, tenant, document type, timestamp or access scope.\"},\"tunes\":{}},{\"id\":\"p-vdb-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Qdrant, for example, organizes data into collections of points where a point contains a vector and optional payload metadata. Its documentation describes HNSW-based similarity search and metadata filtering as separate capabilities of the retrieval layer.\"},\"tunes\":{}},{\"id\":\"p-vdb-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"That distinction matters: the vector index answers a nearest-neighbor problem, while payload filters enforce structural constraints such as tenant, document class or language.\"},\"tunes\":{}},{\"id\":\"h-ann\",\"type\":\"header\",\"data\":{\"text\":\"Approximate nearest-neighbor search trades exactness for efficiency\",\"level\":3},\"tunes\":{}},{\"id\":\"p-ann-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Comparing one query vector against every vector can be practical for small collections but expensive at large scale. Approximate nearest-neighbor indexes such as HNSW reduce search cost by navigating an index structure instead of exhaustively scanning every vector.\"},\"tunes\":{}},{\"id\":\"p-ann-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Approximate search introduces a recall\u002Flatency trade-off. Faster search can miss candidates that exact search would return. Index parameters therefore affect retrieval quality, not just infrastructure performance.\"},\"tunes\":{}},{\"id\":\"p-ann-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Qdrant exposes both HNSW-related parameters and an exact-search option, illustrating that vector storage and approximate retrieval policy are separate decisions.\"},\"tunes\":{}},{\"id\":\"h-filtering\",\"type\":\"header\",\"data\":{\"text\":\"Metadata filtering belongs before or during candidate retrieval\",\"level\":3},\"tunes\":{}},{\"id\":\"p-filter-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"If the user may only access tenant A, retrieving semantically similar chunks from tenant B and attempting to remove them later is the wrong security boundary. Authorization and hard eligibility filters should constrain the candidate space before those candidates can influence downstream processing.\"},\"tunes\":{}},{\"id\":\"p-filter-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The same principle applies to locale, document status, source class, date, product version and other deterministic constraints. Similarity should rank eligible candidates; it should not override eligibility.\"},\"tunes\":{}},{\"id\":\"h-vector-not-required\",\"type\":\"header\",\"data\":{\"text\":\"A vector database is optional\",\"level\":3},\"tunes\":{}},{\"id\":\"p-optional-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"For a small corpus, brute-force cosine comparison may be simple and sufficient. A relational database with vector support may also be adequate. A dedicated vector database becomes valuable when its indexing, filtering, distributed storage, update behavior or operational features solve a real requirement.\"},\"tunes\":{}},{\"id\":\"p-optional-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Choosing a vector database because “RAG needs one” reverses the architecture process. Start with retrieval requirements and scale, then select the storage\u002Findex technology.\"},\"tunes\":{}},{\"id\":\"h-rerank\",\"type\":\"header\",\"data\":{\"text\":\"Reranking: second-stage relevance refinement\",\"level\":2},\"tunes\":{}},{\"id\":\"p-rerank-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A reranker receives a query and a smaller set of already retrieved candidates, then assigns stronger relevance scores or a new ordering. It is normally more computationally expensive than first-stage retrieval, which is why it is applied after candidate generation rather than to the entire corpus.\"},\"tunes\":{}},{\"id\":\"p-rerank-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Current Elastic guidance describes semantic reranking as a final-stage technique over a small top-k set and notes that it can refine lexical, semantic or hybrid retrieval. Cohere documents the same architecture: first-stage lexical or semantic search followed by a reranking stage.\"},\"tunes\":{}},{\"id\":\"p-rerank-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"A common implementation uses a cross-encoder-like model that examines the query and each candidate together. That richer interaction can distinguish relevance more precisely than independent embedding similarity, but it is much more expensive at corpus scale.\"},\"tunes\":{}},{\"id\":\"h-bi-cross\",\"type\":\"header\",\"data\":{\"text\":\"Bi-encoder retrieval and cross-encoder reranking solve different cost problems\",\"level\":3},\"tunes\":{}},{\"id\":\"encoder-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Property\",\"Bi-encoder \u002F embedding retrieval\",\"Cross-encoder-style reranking\"],[\"Encoding\",\"Query and documents represented independently\",\"Query and candidate processed jointly\"],[\"Document computation\",\"Can be precomputed at ingest\",\"Normally recomputed per query-candidate pair\"],[\"Corpus-scale search\",\"Suitable with vector indexes\",\"Usually too expensive across the entire corpus\"],[\"Typical role\",\"High-recall candidate generation\",\"High-precision ordering of a small candidate set\"],[\"Main trade-off\",\"Fast and scalable but relevance interaction is compressed into vectors\",\"Richer relevance judgment but higher latency\u002Fcost\"]]},\"tunes\":{}},{\"id\":\"h-rerank-limit\",\"type\":\"header\",\"data\":{\"text\":\"A reranker cannot recover what retrieval missed\",\"level\":3},\"tunes\":{}},{\"id\":\"p-rerank-limit-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"If the relevant document is absent from the candidate set, reranking has nothing to promote. This is the central reason to evaluate retrieval and reranking separately.\"},\"tunes\":{}},{\"id\":\"p-rerank-limit-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A pipeline can have excellent reranker precision and still fail because first-stage recall is poor. Increasing reranker quality will not repair missing source coverage, bad chunking, restrictive filters or a weak candidate retriever.\"},\"tunes\":{}},{\"id\":\"recall-precision\",\"type\":\"callout\",\"data\":{\"variant\":\"success\",\"title\":\"Useful retrieval objective\",\"body\":\"First stage: \u003Cstrong>do not miss the useful candidates.\u003C\u002Fstrong>\u003Cbr>Second stage: \u003Cstrong>put the best candidates first.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>This is not a universal mathematical rule, but it is a useful engineering model for two-stage retrieval.\"},\"tunes\":{}},{\"id\":\"h-hybrid\",\"type\":\"header\",\"data\":{\"text\":\"Hybrid retrieval is a separate design choice\",\"level\":2},\"tunes\":{}},{\"id\":\"p-hybrid-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Dense semantic retrieval is strong when query and document use different wording but express related meaning. Lexical retrieval is strong when exact terms, identifiers, names, codes or rare phrases matter.\"},\"tunes\":{}},{\"id\":\"p-hybrid-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Hybrid retrieval combines multiple candidate signals, often lexical BM25 and vector similarity, then merges rankings using a method such as Reciprocal Rank Fusion or a weighted score combination.\"},\"tunes\":{}},{\"id\":\"p-hybrid-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Reranking can then operate on the fused candidate set. Hybrid retrieval and reranking are therefore complementary but distinct stages.\"},\"tunes\":{}},{\"id\":\"h-bm25\",\"type\":\"header\",\"data\":{\"text\":\"BM25 is not obsolete because embeddings exist\",\"level\":3},\"tunes\":{}},{\"id\":\"p-bm25-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Keyword search can outperform dense retrieval for exact identifiers, version numbers, error messages, product codes and specialized vocabulary. SQLite FTS5, for example, includes a BM25 ranking function for full-text search.\"},\"tunes\":{}},{\"id\":\"p-bm25-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"A strong retrieval architecture can use lexical retrieval as the only first stage, vector retrieval as the only first stage, or combine both depending on the corpus and query distribution.\"},\"tunes\":{}},{\"id\":\"h-chunking\",\"type\":\"header\",\"data\":{\"text\":\"Chunking changes what embeddings and rerankers can see\",\"level\":2},\"tunes\":{}},{\"id\":\"p-chunk-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"If a document is split poorly, no later retrieval component can fully reconstruct the missing semantic unit. A chunk that cuts a condition away from its exception may embed misleadingly and may also be reranked incorrectly because the candidate text is incomplete.\"},\"tunes\":{}},{\"id\":\"p-chunk-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Chunk size, overlap, structural boundaries and metadata therefore affect both candidate recall and reranker judgment. Retrieval evaluation should test the complete ingestion-to-ranking pipeline, not only the embedding model.\"},\"tunes\":{}},{\"id\":\"h-scores\",\"type\":\"header\",\"data\":{\"text\":\"Do not compare retrieval scores as if they were universal probabilities\",\"level\":2},\"tunes\":{}},{\"id\":\"p-scores-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Cosine similarity, BM25 scores, sparse-vector scores, RRF ranks and reranker scores have different meanings. A score of 0.82 from one embedding model is not automatically comparable with 0.82 from another model or with a reranker score.\"},\"tunes\":{}},{\"id\":\"p-scores-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Thresholds should be calibrated for the actual model, corpus and task. Current Elastic guidance also notes that embedding similarity scores can be query-dependent, which makes universal cutoffs risky.\"},\"tunes\":{}},{\"id\":\"h-eval\",\"type\":\"header\",\"data\":{\"text\":\"Evaluate retrieval stages separately\",\"level\":2},\"tunes\":{}},{\"id\":\"eval-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Layer\",\"Useful question\",\"Example metric or test\"],[\"Source coverage\",\"Does the corpus contain the needed information?\",\"Coverage audit \u002F known-answer source set\"],[\"Chunking\",\"Is the needed evidence retrievable as a coherent unit?\",\"Chunk-level support review\"],[\"First-stage retrieval\",\"Does the relevant item enter the candidate set?\",\"Recall@k\"],[\"Ranking\",\"How high does relevant evidence appear?\",\"MRR, nDCG, precision@k\"],[\"Reranking\",\"Does second-stage scoring improve ordering?\",\"Delta nDCG \u002F MRR \u002F precision\"],[\"Context selection\",\"Do the final selected passages contain sufficient support?\",\"Context relevance \u002F coverage\"],[\"Answer stage\",\"Does the model use the selected evidence correctly?\",\"Faithfulness \u002F claim-evidence evaluation\"]]},\"tunes\":{}},{\"id\":\"p-eval-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"This separation is operationally important. If Recall@50 is poor, the reranker is not the first component to fix. If Recall@50 is strong but the best passage remains at rank 38, reranking or ranking fusion becomes a plausible target.\"},\"tunes\":{}},{\"id\":\"h-failure-map\",\"type\":\"header\",\"data\":{\"text\":\"Which layer actually failed?\",\"level\":2},\"tunes\":{}},{\"id\":\"failure-comparison\",\"type\":\"comparison\",\"data\":{\"title\":\"Symptoms and likely retrieval layer\",\"layout\":\"table\",\"columns\":[{\"id\":\"symptom\",\"label\":\"Observed symptom\"},{\"id\":\"likely\",\"label\":\"Likely layer\"},{\"id\":\"test\",\"label\":\"First diagnostic\"}],\"rows\":[{\"id\":\"missed\",\"label\":\"Relevant document never appears\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"lowrank\",\"label\":\"Relevant document appears too low\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"wrongtenant\",\"label\":\"Semantically good but forbidden result\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"stale\",\"label\":\"Relevant but outdated result\",\"values\":[\"\",\"\",\"\"]},{\"id\":\"context\",\"label\":\"Correct result retrieved but omitted from prompt\",\"values\":[\"\",\"\",\"\"]}]},\"tunes\":{}},{\"id\":\"h-authority\",\"type\":\"header\",\"data\":{\"text\":\"Relevance and Source of Truth are different\",\"level\":2},\"tunes\":{}},{\"id\":\"p-authority-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"A reranker can make a stale document look extremely relevant. A vector index can retrieve a secondary summary that is semantically closer than the primary source. Retrieval quality therefore cannot replace authority rules.\"},\"tunes\":{}},{\"id\":\"p-authority-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Where source authority matters, metadata filters, source classes, version rules and provenance should constrain retrieval before the result becomes model context.\"},\"tunes\":{}},{\"id\":\"authority-callout\",\"type\":\"callout\",\"data\":{\"variant\":\"warning\",\"title\":\"Reranking cannot make a non-authoritative source authoritative\",\"body\":\"Relevance answers whether a candidate fits the query. Source-of-Truth architecture answers whether that candidate is allowed to establish the claim.\"},\"tunes\":{}},{\"id\":\"h-impl\",\"type\":\"header\",\"data\":{\"text\":\"Original implementation evidence\",\"level\":2},\"tunes\":{}},{\"id\":\"h-sot-engine\",\"type\":\"header\",\"data\":{\"text\":\"Source of Truth Research Engine: lexical and semantic retrieval are separate\",\"level\":3},\"tunes\":{}},{\"id\":\"p-sot-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The Source of Truth Research Engine contains a local lexical retrieval path using SQLite FTS5\u002FBM25 and a separate optional semantic retrieval path using locally generated embeddings.\"},\"tunes\":{}},{\"id\":\"p-sot-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Its semantic search implementation computes a query vector and compares it with stored chunk vectors using cosine similarity. The project deliberately treats semantic similarity as a discovery signal rather than evidence: a candidate must still be traced back to a concrete source and locator before it supports a claim.\"},\"tunes\":{}},{\"id\":\"p-sot-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"This is useful implementation evidence for R01 because the same corpus can support lexical ranking and vector similarity without confusing either mechanism with evidentiary authority.\"},\"tunes\":{}},{\"id\":\"h-client\",\"type\":\"header\",\"data\":{\"text\":\"Aaasaasa AI Client: Qdrant is a vector infrastructure component\",\"level\":3},\"tunes\":{}},{\"id\":\"p-client-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Aaasaasa AI Client includes Qdrant\u002Fvector infrastructure as a separate local resource. The Electron architecture exposes Qdrant services from the trusted main-process side rather than treating vector search as part of the model itself.\"},\"tunes\":{}},{\"id\":\"p-client-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"The repository contains a Qdrant client adapter, Qdrant service configuration and Docker-based Qdrant infrastructure. This demonstrates the architectural separation between AI provider\u002Fmodel execution and vector storage\u002Fsearch.\"},\"tunes\":{}},{\"id\":\"p-client-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The existence of Qdrant support should not be overstated as a complete production RAG pipeline. The evidence here is narrower: vector infrastructure is implemented as its own component boundary.\"},\"tunes\":{}},{\"id\":\"impl-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Implementation evidence\",\"What it demonstrates\"],[\"SQLite FTS5\u002FBM25 in Source of Truth Research Engine\",\"Lexical retrieval can exist independently of embeddings.\"],[\"Local Ollama embeddings\",\"Representation generation is its own stage.\"],[\"Stored semantic vectors + cosine comparison\",\"Semantic retrieval consumes embeddings after they have been produced.\"],[\"Qdrant support in Aaasaasa AI Client\",\"Vector storage\u002Fsearch is an infrastructure capability separate from the model provider.\"],[\"Evidence\u002Fprovenance rules in Source of Truth Research Engine\",\"Retrieved similarity does not equal authority or proof.\"],[\"No claimed custom reranker in these implementations\",\"Reranking is explained as an architectural stage, not falsely claimed as already implemented evidence.\"]]},\"tunes\":{}},{\"id\":\"impl-discipline\",\"type\":\"callout\",\"data\":{\"variant\":\"note\",\"title\":\"Evidence boundary\",\"body\":\"The current implementation evidence confirms lexical retrieval, embeddings, vector search infrastructure and provenance-aware retrieval. This article does \u003Cstrong>not\u003C\u002Fstrong> claim that a production cross-encoder reranking service is already implemented in these projects.\"},\"tunes\":{}},{\"id\":\"h-decisions\",\"type\":\"header\",\"data\":{\"text\":\"When do you need each component?\",\"level\":2},\"tunes\":{}},{\"id\":\"decision-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Need\",\"Likely component\"],[\"Semantic similarity across different wording\",\"Embedding model + vector similarity search\"],[\"Efficient search over a large vector corpus\",\"Vector index\u002Fdatabase or vector-capable search engine\"],[\"Exact identifiers, error codes or rare terms\",\"Lexical\u002Ffull-text retrieval such as BM25\"],[\"Both exact terminology and semantic meaning\",\"Hybrid lexical + semantic retrieval\"],[\"Candidate set is good but ordering is weak\",\"Reranker\"],[\"Relevant items are absent from candidate set\",\"Improve source coverage, chunking, retriever, filters or candidate count before reranking\"],[\"Hard tenant\u002Fsource\u002Fversion constraints\",\"Deterministic metadata\u002Fauthorization filtering\"],[\"Small corpus\",\"Potentially simple brute-force similarity or general-purpose database rather than dedicated vector DB\"]]},\"tunes\":{}},{\"id\":\"h-sequence\",\"type\":\"header\",\"data\":{\"text\":\"A practical retrieval design sequence\",\"level\":2},\"tunes\":{}},{\"id\":\"design-flow\",\"type\":\"processFlow\",\"data\":{\"title\":\"Design retrieval from requirements, not from product names\",\"orientation\":\"auto\",\"steps\":[{\"label\":\"1. Define the query types\",\"description\":\"Identify semantic questions, exact lookups, identifiers, current-state reads and domain-specific patterns.\"},{\"label\":\"2. Define eligible sources\",\"description\":\"Apply tenant, authorization, locale, version, source class and freshness constraints.\"},{\"label\":\"3. Establish lexical baseline\",\"description\":\"Measure whether simple full-text\u002FBM25 retrieval already solves much of the workload.\"},{\"label\":\"4. Add embeddings where semantic recall is needed\",\"description\":\"Choose and evaluate an embedding model against representative domain queries.\"},{\"label\":\"5. Choose vector storage\u002Findexing based on scale\",\"description\":\"Use brute force, database vector support or a dedicated vector engine according to requirements.\"},{\"label\":\"6. Evaluate first-stage recall\",\"description\":\"Confirm that relevant evidence enters a sufficiently large candidate set.\"},{\"label\":\"7. Add hybrid retrieval if signals are complementary\",\"description\":\"Fuse lexical and semantic rankings when both materially improve candidate generation.\"},{\"label\":\"8. Add reranking if ordering remains the bottleneck\",\"description\":\"Apply the stronger model only to the candidate set where its cost is justified.\"},{\"label\":\"9. Tune final context selection\",\"description\":\"Control redundancy, context budget, authority, diversity and evidence coverage before generation.\"},{\"label\":\"10. Evaluate end-to-end\",\"description\":\"Measure retrieval, context and answer quality separately so failures can be localized.\"}]},\"tunes\":{}},{\"id\":\"h-misconceptions\",\"type\":\"header\",\"data\":{\"text\":\"Common misconceptions\",\"level\":2},\"tunes\":{}},{\"id\":\"misconceptions-table\",\"type\":\"table\",\"data\":{\"withHeadings\":true,\"stretched\":false,\"content\":[[\"Misconception\",\"Correction\"],[\"“An embedding is a vector database.”\",\"An embedding is a representation; the database\u002Findex stores and searches representations.\"],[\"“A vector database creates semantic meaning.”\",\"The embedding model creates the representation; the vector system indexes and compares it.\"],[\"“RAG requires a vector database.”\",\"RAG requires retrieval, not a specific retrieval technology.\"],[\"“Reranking is the same as vector search.”\",\"Vector search generates candidates; reranking reorders a candidate set.\"],[\"“Rerankers fix poor recall.”\",\"They cannot promote a document that was never retrieved.\"],[\"“Dense search replaces BM25.”\",\"Lexical search remains valuable for exact terms, identifiers and specialized vocabulary.\"],[\"“Higher similarity means more authoritative.”\",\"Similarity and source authority are different dimensions.\"],[\"“More top-k always improves RAG.”\",\"Larger candidate sets can improve recall but add latency, noise and context-selection burden.\"],[\"“One score threshold works everywhere.”\",\"Scores depend on model, query, corpus and retrieval method and must be calibrated.\"],[\"“A dedicated vector DB is always more advanced.”\",\"It is only justified when its operational and retrieval capabilities match the requirements.\"]]},\"tunes\":{}},{\"id\":\"h-edge\",\"type\":\"header\",\"data\":{\"text\":\"Edge cases and limitations\",\"level\":2},\"tunes\":{}},{\"id\":\"p-edge-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"Some applications do not need semantic search. Exact database lookup or structured SQL can be more correct, faster and easier to audit than embedding retrieval.\"},\"tunes\":{}},{\"id\":\"p-edge-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Some corpora are so small that a full vector scan is acceptable. Approximate indexing adds complexity without meaningful benefit.\"},\"tunes\":{}},{\"id\":\"p-edge-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Some queries require high recall before any precision optimization. Legal discovery, research and compliance review may prefer broad candidate retrieval followed by transparent filtering and human review.\"},\"tunes\":{}},{\"id\":\"p-edge-4\",\"type\":\"paragraph\",\"data\":{\"text\":\"Multilingual and domain-specific retrieval can behave very differently across embedding models. Benchmark claims from public datasets should not be treated as proof for a private corpus.\"},\"tunes\":{}},{\"id\":\"p-edge-5\",\"type\":\"paragraph\",\"data\":{\"text\":\"Reranking latency grows with the number and length of candidates. Candidate size should therefore be tuned as an accuracy\u002Fcost\u002Flatency variable rather than copied from a tutorial.\"},\"tunes\":{}},{\"id\":\"h-change\",\"type\":\"header\",\"data\":{\"text\":\"What would change this answer?\",\"level\":2},\"tunes\":{}},{\"id\":\"p-change-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The component boundaries would not change if a vendor packages embedding generation, vector indexing and reranking behind one API. The product may hide the stages, but they remain conceptually different responsibilities with different failure modes.\"},\"tunes\":{}},{\"id\":\"p-change-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Future embedding or retrieval models may reduce the need for separate reranking in some workloads, while stronger late-interaction or learned sparse methods can blur traditional dense\u002Flexical categories. The architecture should still ask which stage produces representations, which stage generates candidates and which stage refines ranking.\"},\"tunes\":{}},{\"id\":\"p-change-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The best design also changes with corpus size, query mix, language, domain terminology, update frequency, source authority, latency budget and evaluation results.\"},\"tunes\":{}},{\"id\":\"h-related\",\"type\":\"header\",\"data\":{\"text\":\"Related canonical knowledge\",\"level\":2},\"tunes\":{}},{\"id\":\"p-related-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"R01 assumes the basic RAG concept is already understood. RAG is the wider pattern in which retrieved external information is supplied to a model; embeddings, vector search and reranking are optional retrieval components inside that pattern.\"},\"tunes\":{}},{\"id\":\"ref-rag\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works\",\"title\":\"What Is RAG? The Simplest Explanation of How It Works\",\"excerpt\":\"A plain-English foundation for how retrieval brings external knowledge into the model context.\",\"ctaLabel\":\"Read the RAG foundation\"},\"tunes\":{}},{\"id\":\"p-related-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"When retrieval fails, diagnose source coverage, retrieval, ranking, context assembly and generation separately rather than treating the whole system as one “RAG failure.”\"},\"tunes\":{}},{\"id\":\"ref-rag-failed\",\"type\":\"referralArticle\",\"data\":{\"url\":\"https:\u002F\u002Fstajic.de\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method\",\"title\":\"RAG Failed — But Which Layer Actually Failed? A Diagnostic Method\",\"excerpt\":\"A layer-by-layer method for isolating source coverage, retrieval, ranking, context assembly, generation, evidence attribution and freshness failures.\",\"ctaLabel\":\"Read the RAG diagnostic method\"},\"tunes\":{}},{\"id\":\"p-related-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"Source-of-Truth architecture is the authority layer around retrieval: it decides which source can establish a claim, while embeddings and ranking only decide which candidates appear relevant.\"},\"tunes\":{}},{\"id\":\"h-faq\",\"type\":\"header\",\"data\":{\"text\":\"Frequently asked questions\",\"level\":2},\"tunes\":{}},{\"id\":\"faq\",\"type\":\"faq\",\"data\":{\"title\":\"Embeddings, vector databases and reranking\",\"items\":[{\"id\":\"faq1\",\"question\":\"What is the difference between embeddings and a vector database?\",\"answer\":\"Embeddings are numerical representations produced by a model. A vector database or vector index stores and searches those representations together with IDs and metadata.\"},{\"id\":\"faq2\",\"question\":\"What does a reranker do?\",\"answer\":\"A reranker takes an already retrieved candidate set and re-scores or reorders those candidates using a stronger relevance model or scoring method.\"},{\"id\":\"faq3\",\"question\":\"Does RAG require a vector database?\",\"answer\":\"No. RAG requires retrieval of external information. Retrieval can use lexical search, SQL, APIs, graphs, vector search, hybrid search or combinations of these.\"},{\"id\":\"faq4\",\"question\":\"Why not use the reranker on the whole corpus?\",\"answer\":\"Rerankers commonly perform more expensive query-document interaction, so they are usually applied to a small top-k candidate set after a faster first-stage retriever.\"},{\"id\":\"faq5\",\"question\":\"Can reranking fix a missing document?\",\"answer\":\"No. If the relevant document was not retrieved into the candidate set, reranking has nothing to promote.\"},{\"id\":\"faq6\",\"question\":\"Is cosine similarity a relevance probability?\",\"answer\":\"No. It is a similarity measure whose numeric meaning depends on the embedding model and corpus. It should not be treated as a universal probability of relevance.\"},{\"id\":\"faq7\",\"question\":\"Should I use BM25 and vector search together?\",\"answer\":\"Use hybrid retrieval when evaluation shows that lexical and semantic signals recover complementary relevant documents. It is not automatically better for every corpus.\"},{\"id\":\"faq8\",\"question\":\"When do I need a dedicated vector database?\",\"answer\":\"When vector indexing, filtering, scale, updates, distributed operation or other vector-specific requirements justify a specialized system. Small workloads may not need one.\"}]},\"tunes\":{}},{\"id\":\"h-glossary\",\"type\":\"header\",\"data\":{\"text\":\"Glossary\",\"level\":2},\"tunes\":{}},{\"id\":\"glossary\",\"type\":\"glossary\",\"data\":{\"title\":\"Key retrieval terms\",\"entries\":[{\"term\":\"Embedding\",\"definition\":\"A numerical representation of content produced by an embedding model for similarity, clustering, retrieval or related tasks.\",\"anchor\":\"embedding\"},{\"term\":\"Dense vector\",\"definition\":\"A vector representation in which many dimensions carry non-zero values, commonly used in semantic retrieval.\",\"anchor\":\"dense-vector\"},{\"term\":\"Sparse vector\",\"definition\":\"A high-dimensional representation in which most dimensions are zero, often preserving stronger token- or term-like structure.\",\"anchor\":\"sparse-vector\"},{\"term\":\"Vector index\",\"definition\":\"A data structure that organizes vectors for efficient similarity or nearest-neighbor retrieval.\",\"anchor\":\"vector-index\"},{\"term\":\"Vector database\",\"definition\":\"A storage\u002Fsearch system designed to manage vectors, associated metadata and vector retrieval workloads.\",\"anchor\":\"vector-database\"},{\"term\":\"ANN\",\"definition\":\"Approximate nearest-neighbor search, which trades exact exhaustive comparison for faster retrieval at scale.\",\"anchor\":\"ann\"},{\"term\":\"HNSW\",\"definition\":\"Hierarchical Navigable Small World, a graph-based approximate nearest-neighbor indexing approach widely used for vector retrieval.\",\"anchor\":\"hnsw\"},{\"term\":\"BM25\",\"definition\":\"A lexical relevance-ranking method based on term occurrence and corpus statistics, widely used in full-text search.\",\"anchor\":\"bm25\"},{\"term\":\"Hybrid search\",\"definition\":\"Retrieval that combines results or scores from multiple retrieval methods such as lexical and vector search.\",\"anchor\":\"hybrid-search\"},{\"term\":\"Reranking\",\"definition\":\"A later retrieval stage that re-scores and reorders an already generated candidate set.\",\"anchor\":\"reranking\"},{\"term\":\"Bi-encoder\",\"definition\":\"An architecture that encodes query and candidate independently, enabling precomputation and scalable similarity search.\",\"anchor\":\"bi-encoder\"},{\"term\":\"Cross-encoder\",\"definition\":\"A model that jointly processes a query and candidate text, often improving relevance judgment at higher computational cost.\",\"anchor\":\"cross-encoder\"},{\"term\":\"Recall@k\",\"definition\":\"The fraction of relevant items recovered within the top k retrieved candidates.\",\"anchor\":\"recall-at-k\"},{\"term\":\"nDCG\",\"definition\":\"Normalized Discounted Cumulative Gain, a ranking metric that rewards relevant results appearing higher in an ordered list.\",\"anchor\":\"ndcg\"}]},\"tunes\":{}},{\"id\":\"h-conclusion\",\"type\":\"header\",\"data\":{\"text\":\"Conclusion\",\"level\":2},\"tunes\":{}},{\"id\":\"p-conclusion-1\",\"type\":\"paragraph\",\"data\":{\"text\":\"The clean retrieval model is simple: embeddings represent meaning, vector search retrieves candidates, and rerankers refine candidate ordering.\"},\"tunes\":{}},{\"id\":\"p-conclusion-2\",\"type\":\"paragraph\",\"data\":{\"text\":\"Once those boundaries are explicit, architecture decisions become easier to diagnose. Missing candidates point toward source coverage, chunking, embeddings, filters or first-stage retrieval. Poor ordering points toward ranking, fusion or reranking. Incorrect final answers can then be investigated separately at context and generation layers.\"},\"tunes\":{}},{\"id\":\"p-conclusion-3\",\"type\":\"paragraph\",\"data\":{\"text\":\"The most important result is not choosing the most fashionable retrieval component. It is building a retrieval pipeline whose stages, authority boundaries, metrics and failure modes can be measured independently.\"},\"tunes\":{}},{\"id\":\"h-sources\",\"type\":\"header\",\"data\":{\"text\":\"Primary sources and implementation evidence\",\"level\":2},\"tunes\":{}},{\"id\":\"p-sources-note\",\"type\":\"paragraph\",\"data\":{\"text\":\"The external references below document the representation, vector-search and reranking mechanisms used in this article. Project-specific sections are original implementation evidence and are intentionally narrower than claims about complete production RAG maturity.\"},\"tunes\":{}},{\"id\":\"src-sbert\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.10084\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks\",\"description\":\"Foundational paper demonstrating independently computable sentence embeddings for efficient semantic similarity search.\"}},\"tunes\":{}},{\"id\":\"src-qdrant-overview\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Foverview\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Qdrant — Architecture and data structure overview\",\"description\":\"Official documentation describing collections, points, vectors, payload metadata and HNSW-based similarity indexing.\"}},\"tunes\":{}},{\"id\":\"src-qdrant-search\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fsearch\u002Fsearch\u002F\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Qdrant — Search\",\"description\":\"Official vector-search documentation covering similarity queries, filtering, exact versus approximate search and dense\u002Fsparse behavior.\"}},\"tunes\":{}},{\"id\":\"src-elastic-vector\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Fvector\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Elastic — Vector search\",\"description\":\"Current documentation on dense\u002Fsparse vector retrieval, lexical\u002Fvector combinations and multi-stage search pipelines.\"}},\"tunes\":{}},{\"id\":\"src-elastic-rerank\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Franking\u002Fsemantic-reranking\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Elastic — Semantic reranking\",\"description\":\"Current guidance defining semantic reranking as a later-stage relevance operation over a smaller candidate set.\"}},\"tunes\":{}},{\"id\":\"src-cohere-rerank\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Freranking-with-cohere\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"Cohere — Reranking with Cohere\",\"description\":\"Current documentation showing reranking as a second-stage improvement over lexical or semantic first-stage retrieval.\"}},\"tunes\":{}},{\"id\":\"src-sqlite-fts5\",\"type\":\"linkTool\",\"data\":{\"link\":\"https:\u002F\u002Fwww.sqlite.org\u002Ffts5.html\",\"meta\":{\"image\":{\"url\":\"\"},\"title\":\"SQLite FTS5\",\"description\":\"Official SQLite documentation for full-text search and the built-in BM25 ranking function used as lexical retrieval evidence.\"}},\"tunes\":{}}],\"version\":\"2.31.6\"}",{"time":1292,"blocks":1293,"version":2128},1791489989811,[1294,1298,1303,1308,1313,1317,1321,1325,1329,1333,1337,1341,1345,1349,1372,1376,1380,1384,1388,1413,1417,1421,1425,1429,1433,1437,1441,1445,1449,1453,1457,1461,1465,1470,1474,1478,1482,1486,1490,1494,1498,1502,1506,1510,1514,1518,1522,1526,1530,1534,1538,1542,1546,1574,1578,1582,1586,1591,1595,1599,1603,1607,1611,1615,1619,1623,1627,1631,1635,1639,1643,1647,1679,1683,1687,1714,1718,1722,1726,1731,1735,1739,1743,1747,1751,1755,1759,1763,1767,1792,1797,1801,1831,1835,1870,1874,1910,1914,1918,1922,1926,1930,1934,1938,1942,1946,1950,1954,1958,1965,1969,1976,1980,1984,2013,2017,2057,2060,2064,2068,2072,2076,2080,2087,2094,2101,2108,2115,2122],{"id":215,"data":1295,"type":218,"tunes":1297},{"text":1296},"Embeddings, vector databases and rerankers are three different parts of retrieval. An embedding model converts text or other data into numerical representations; a vector database or vector index stores and searches those representations to retrieve candidate items; a reranker takes a smaller candidate set and reorders it using a more expensive relevance model or scoring method. They often appear together in RAG, but none of them is the same thing as RAG, and none is mandatory in every retrieval system.",{},{"id":221,"data":1299,"type":226,"tunes":1302},{"body":1300,"title":1301,"variant":225},"\u003Cstrong>Embeddings represent. Vector search retrieves. Reranking refines.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>A useful mental model is:\u003Cbr>\u003Cstrong>content → embedding → candidate retrieval → reranking → selected context → model\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>The boundaries matter because each layer fails differently. Bad embeddings distort semantic similarity. A weak retrieval index misses useful candidates. A reranker can reorder candidates, but it cannot recover a relevant document that was never retrieved.","Direct answer",{},{"id":229,"data":1304,"type":226,"tunes":1307},{"body":1305,"title":1306,"variant":233},"A vector database is not an embedding model. An embedding is not a search result. A reranker is not a vector database. RAG is the wider pattern that can use any of these components to retrieve external information before generation.","Do not collapse the retrieval stack",{},{"id":236,"data":1309,"type":226,"tunes":1312},{"body":1310,"title":1311,"variant":240},"The basic architecture is stable even though products evolve rapidly. Current Qdrant documentation separates vectors, payload metadata, collections and vector indexes; current Elastic guidance treats semantic reranking as a later-stage operation over a small candidate set; current Cohere documentation likewise describes reranking as a second-stage improvement over lexical or semantic search.","Current-source note — 8 October 2026",{},{"id":243,"data":1314,"type":248,"tunes":1316},{"title":1315,"maxLevel":246,"minLevel":247},"Contents",{},{"id":251,"data":1318,"type":42,"tunes":1320},{"text":1319,"level":247},"What this really means",{},{"id":256,"data":1322,"type":218,"tunes":1324},{"text":1323},"Search systems have two competing goals: find enough potentially relevant material and put the best material near the top. Fast first-stage retrieval usually optimizes candidate generation. A stronger second-stage model can then spend more computation distinguishing the best candidates.",{},{"id":261,"data":1326,"type":218,"tunes":1328},{"text":1327},"Embeddings, vector indexes and rerankers occupy different positions in that process. Treating them as one feature hides important design choices about recall, precision, latency, storage, metadata filtering and model cost.",{},{"id":266,"data":1330,"type":218,"tunes":1332},{"text":1331},"The distinction also prevents a common RAG mistake: assuming that storing document embeddings in a vector database automatically creates high-quality retrieval. Retrieval quality depends on the embedding model, chunking, metadata, query construction, index configuration, candidate count, hybrid retrieval, reranking and the authority of the underlying sources.",{},{"id":271,"data":1334,"type":42,"tunes":1336},{"text":1335,"level":247},"The simplest example",{},{"id":276,"data":1338,"type":218,"tunes":1340},{"text":1339},"Suppose a knowledge base contains 100,000 document chunks. A user asks: “How do I revoke an API token?”",{},{"id":281,"data":1342,"type":218,"tunes":1344},{"text":1343},"First, an embedding model can encode the query into a vector. Document chunks may already have their own stored embeddings. A vector search then compares the query vector to the indexed document vectors and returns, for example, 30 likely candidates.",{},{"id":286,"data":1346,"type":218,"tunes":1348},{"text":1347},"Those 30 candidates can then be passed to a reranker. The reranker compares the query more directly with each candidate and produces a new relevance ordering. The application might keep the best five for the model context.",{},{"id":291,"data":1350,"type":314,"tunes":1371},{"steps":1351,"title":1370,"orientation":313},[1352,1355,1358,1361,1364,1367],{"label":1353,"description":1354},"1. Embed documents","Convert each searchable chunk into a numerical representation, usually at ingest time.",{"label":1356,"description":1357},"2. Store\u002Findex vectors","Associate vectors with document IDs and metadata in a searchable vector index or database.",{"label":1359,"description":1360},"3. Embed the query","Encode the user's query using the compatible embedding model and query configuration.",{"label":1362,"description":1363},"4. Retrieve candidates","Run vector similarity search, often with metadata filters, to produce a larger top-k candidate set.",{"label":1365,"description":1366},"5. Rerank candidates","Apply a stronger relevance model to the query and the small candidate set.",{"label":1368,"description":1369},"6. Select context","Keep the most useful passages for the downstream answer, agent step or search result.","A basic two-stage semantic retrieval pipeline",{},{"id":317,"data":1373,"type":42,"tunes":1375},{"text":1374,"level":247},"Where the simple example stops",{},{"id":322,"data":1377,"type":218,"tunes":1379},{"text":1378},"Real retrieval systems do not have to use dense embeddings at all. Keyword search such as BM25 can be the first-stage retriever. Sparse learned retrieval, SQL filters, graph traversal or application APIs can also generate candidates.",{},{"id":327,"data":1381,"type":218,"tunes":1383},{"text":1382},"A reranker also does not care that the candidates came from a vector database. It can rerank BM25 results, hybrid results, hand-selected documents or candidates from multiple retrievers.",{},{"id":332,"data":1385,"type":218,"tunes":1387},{"text":1386},"Likewise, embeddings do not require a specialized vector database. Small datasets can be compared in memory or with general-purpose databases and vector extensions. Specialized vector systems become useful when indexing, approximate nearest-neighbor search, filtering, scale, update behavior or operational requirements justify them.",{},{"id":337,"data":1389,"type":373,"tunes":1412},{"rows":1390,"title":1406,"layout":362,"columns":1407},[1391,1394,1397,1400,1403],{"id":341,"label":1392,"values":1393},"Primary job",[344,344,344],{"id":346,"label":1395,"values":1396},"Typical input",[344,344,344],{"id":350,"label":1398,"values":1399},"Typical output",[344,344,344],{"id":354,"label":1401,"values":1402},"Cost profile",[344,344,344],{"id":358,"label":1404,"values":1405},"Typical failure",[344,344,344],"Three different retrieval components",[1408,1409,1411],{"id":365,"label":366},{"id":368,"label":1410},"Vector database \u002F index",{"id":371,"label":372},{},{"id":376,"data":1414,"type":42,"tunes":1416},{"text":1415,"level":247},"Embeddings: representation, not retrieval",{},{"id":381,"data":1418,"type":218,"tunes":1420},{"text":1419},"An embedding is a numerical representation produced by a model. For semantic retrieval, texts with related meaning are intended to occupy useful positions in a vector space so that a similarity or distance function can compare them.",{},{"id":386,"data":1422,"type":218,"tunes":1424},{"text":1423},"Sentence-BERT was an influential step in making sentence-level semantic similarity practical with bi-encoder-style representations that can be computed independently and compared efficiently. The general idea remains central to modern dense retrieval: precompute document representations, compute the query representation at search time, then compare them.",{},{"id":391,"data":1426,"type":218,"tunes":1428},{"text":1427},"The embedding itself does not search a corpus. It is data produced by an embedding model. Retrieval begins when the system compares the query representation against stored candidates.",{},{"id":396,"data":1430,"type":42,"tunes":1432},{"text":1431,"level":246},"The embedding model defines the representation space",{},{"id":401,"data":1434,"type":218,"tunes":1436},{"text":1435},"Document and query vectors must be compatible with the model and configuration used to create them. Replacing an embedding model can change dimensionality, similarity behavior, language coverage and domain performance.",{},{"id":406,"data":1438,"type":218,"tunes":1440},{"text":1439},"That is why an embedding-model migration is not merely an API-name change. Existing documents may need to be re-embedded and the index rebuilt or versioned.",{},{"id":411,"data":1442,"type":42,"tunes":1444},{"text":1443,"level":246},"Dense and sparse representations are different",{},{"id":416,"data":1446,"type":218,"tunes":1448},{"text":1447},"Dense embeddings usually contain many non-zero dimensions and are commonly used for semantic similarity. Sparse representations contain many zeros and can preserve stronger token- or term-like structure.",{},{"id":421,"data":1450,"type":218,"tunes":1452},{"text":1451},"Both can support semantic retrieval, and modern search systems can combine dense, sparse and lexical signals. “Vector search” therefore does not always mean one dense cosine-similarity pipeline.",{},{"id":426,"data":1454,"type":42,"tunes":1456},{"text":1455,"level":246},"Similarity functions are part of the representation contract",{},{"id":431,"data":1458,"type":218,"tunes":1460},{"text":1459},"Cosine similarity, dot product and Euclidean distance do not mean the same thing. The correct metric depends on how the embedding model was trained and normalized.",{},{"id":436,"data":1462,"type":218,"tunes":1464},{"text":1463},"Current Qdrant documentation, for example, requires a distance metric as part of vector configuration and documents cosine, dot-product and Euclidean-style choices. The important architectural rule is to treat the metric as part of the embedding\u002Findex contract rather than choose one arbitrarily.",{},{"id":441,"data":1466,"type":226,"tunes":1469},{"body":1467,"title":1468,"variant":233},"Two passages can be semantically close while one is stale, unauthorized or wrong. Embeddings estimate representational similarity; they do not determine Source-of-Truth authority, freshness or evidentiary validity.","Embedding similarity is not factual support",{},{"id":447,"data":1471,"type":42,"tunes":1473},{"text":1472,"level":247},"Vector databases and indexes: candidate retrieval",{},{"id":452,"data":1475,"type":218,"tunes":1477},{"text":1476},"A vector database or vector-capable search system organizes vector representations so the application can retrieve nearby candidates efficiently. Practical systems usually associate vectors with IDs and payload metadata such as source, language, tenant, document type, timestamp or access scope.",{},{"id":457,"data":1479,"type":218,"tunes":1481},{"text":1480},"Qdrant, for example, organizes data into collections of points where a point contains a vector and optional payload metadata. Its documentation describes HNSW-based similarity search and metadata filtering as separate capabilities of the retrieval layer.",{},{"id":462,"data":1483,"type":218,"tunes":1485},{"text":1484},"That distinction matters: the vector index answers a nearest-neighbor problem, while payload filters enforce structural constraints such as tenant, document class or language.",{},{"id":467,"data":1487,"type":42,"tunes":1489},{"text":1488,"level":246},"Approximate nearest-neighbor search trades exactness for efficiency",{},{"id":472,"data":1491,"type":218,"tunes":1493},{"text":1492},"Comparing one query vector against every vector can be practical for small collections but expensive at large scale. Approximate nearest-neighbor indexes such as HNSW reduce search cost by navigating an index structure instead of exhaustively scanning every vector.",{},{"id":477,"data":1495,"type":218,"tunes":1497},{"text":1496},"Approximate search introduces a recall\u002Flatency trade-off. Faster search can miss candidates that exact search would return. Index parameters therefore affect retrieval quality, not just infrastructure performance.",{},{"id":482,"data":1499,"type":218,"tunes":1501},{"text":1500},"Qdrant exposes both HNSW-related parameters and an exact-search option, illustrating that vector storage and approximate retrieval policy are separate decisions.",{},{"id":487,"data":1503,"type":42,"tunes":1505},{"text":1504,"level":246},"Metadata filtering belongs before or during candidate retrieval",{},{"id":492,"data":1507,"type":218,"tunes":1509},{"text":1508},"If the user may only access tenant A, retrieving semantically similar chunks from tenant B and attempting to remove them later is the wrong security boundary. Authorization and hard eligibility filters should constrain the candidate space before those candidates can influence downstream processing.",{},{"id":497,"data":1511,"type":218,"tunes":1513},{"text":1512},"The same principle applies to locale, document status, source class, date, product version and other deterministic constraints. Similarity should rank eligible candidates; it should not override eligibility.",{},{"id":502,"data":1515,"type":42,"tunes":1517},{"text":1516,"level":246},"A vector database is optional",{},{"id":507,"data":1519,"type":218,"tunes":1521},{"text":1520},"For a small corpus, brute-force cosine comparison may be simple and sufficient. A relational database with vector support may also be adequate. A dedicated vector database becomes valuable when its indexing, filtering, distributed storage, update behavior or operational features solve a real requirement.",{},{"id":512,"data":1523,"type":218,"tunes":1525},{"text":1524},"Choosing a vector database because “RAG needs one” reverses the architecture process. Start with retrieval requirements and scale, then select the storage\u002Findex technology.",{},{"id":517,"data":1527,"type":42,"tunes":1529},{"text":1528,"level":247},"Reranking: second-stage relevance refinement",{},{"id":522,"data":1531,"type":218,"tunes":1533},{"text":1532},"A reranker receives a query and a smaller set of already retrieved candidates, then assigns stronger relevance scores or a new ordering. It is normally more computationally expensive than first-stage retrieval, which is why it is applied after candidate generation rather than to the entire corpus.",{},{"id":527,"data":1535,"type":218,"tunes":1537},{"text":1536},"Current Elastic guidance describes semantic reranking as a final-stage technique over a small top-k set and notes that it can refine lexical, semantic or hybrid retrieval. Cohere documents the same architecture: first-stage lexical or semantic search followed by a reranking stage.",{},{"id":532,"data":1539,"type":218,"tunes":1541},{"text":1540},"A common implementation uses a cross-encoder-like model that examines the query and each candidate together. That richer interaction can distinguish relevance more precisely than independent embedding similarity, but it is much more expensive at corpus scale.",{},{"id":537,"data":1543,"type":42,"tunes":1545},{"text":1544,"level":246},"Bi-encoder retrieval and cross-encoder reranking solve different cost problems",{},{"id":542,"data":1547,"type":362,"tunes":1573},{"content":1548,"stretched":43,"withHeadings":14},[1549,1553,1557,1561,1565,1569],[1550,1551,1552],"Property","Bi-encoder \u002F embedding retrieval","Cross-encoder-style reranking",[1554,1555,1556],"Encoding","Query and documents represented independently","Query and candidate processed jointly",[1558,1559,1560],"Document computation","Can be precomputed at ingest","Normally recomputed per query-candidate pair",[1562,1563,1564],"Corpus-scale search","Suitable with vector indexes","Usually too expensive across the entire corpus",[1566,1567,1568],"Typical role","High-recall candidate generation","High-precision ordering of a small candidate set",[1570,1571,1572],"Main trade-off","Fast and scalable but relevance interaction is compressed into vectors","Richer relevance judgment but higher latency\u002Fcost",{},{"id":571,"data":1575,"type":42,"tunes":1577},{"text":1576,"level":246},"A reranker cannot recover what retrieval missed",{},{"id":576,"data":1579,"type":218,"tunes":1581},{"text":1580},"If the relevant document is absent from the candidate set, reranking has nothing to promote. This is the central reason to evaluate retrieval and reranking separately.",{},{"id":581,"data":1583,"type":218,"tunes":1585},{"text":1584},"A pipeline can have excellent reranker precision and still fail because first-stage recall is poor. Increasing reranker quality will not repair missing source coverage, bad chunking, restrictive filters or a weak candidate retriever.",{},{"id":586,"data":1587,"type":226,"tunes":1590},{"body":1588,"title":1589,"variant":590},"First stage: \u003Cstrong>do not miss the useful candidates.\u003C\u002Fstrong>\u003Cbr>Second stage: \u003Cstrong>put the best candidates first.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>This is not a universal mathematical rule, but it is a useful engineering model for two-stage retrieval.","Useful retrieval objective",{},{"id":593,"data":1592,"type":42,"tunes":1594},{"text":1593,"level":247},"Hybrid retrieval is a separate design choice",{},{"id":598,"data":1596,"type":218,"tunes":1598},{"text":1597},"Dense semantic retrieval is strong when query and document use different wording but express related meaning. Lexical retrieval is strong when exact terms, identifiers, names, codes or rare phrases matter.",{},{"id":603,"data":1600,"type":218,"tunes":1602},{"text":1601},"Hybrid retrieval combines multiple candidate signals, often lexical BM25 and vector similarity, then merges rankings using a method such as Reciprocal Rank Fusion or a weighted score combination.",{},{"id":608,"data":1604,"type":218,"tunes":1606},{"text":1605},"Reranking can then operate on the fused candidate set. Hybrid retrieval and reranking are therefore complementary but distinct stages.",{},{"id":613,"data":1608,"type":42,"tunes":1610},{"text":1609,"level":246},"BM25 is not obsolete because embeddings exist",{},{"id":618,"data":1612,"type":218,"tunes":1614},{"text":1613},"Keyword search can outperform dense retrieval for exact identifiers, version numbers, error messages, product codes and specialized vocabulary. SQLite FTS5, for example, includes a BM25 ranking function for full-text search.",{},{"id":623,"data":1616,"type":218,"tunes":1618},{"text":1617},"A strong retrieval architecture can use lexical retrieval as the only first stage, vector retrieval as the only first stage, or combine both depending on the corpus and query distribution.",{},{"id":628,"data":1620,"type":42,"tunes":1622},{"text":1621,"level":247},"Chunking changes what embeddings and rerankers can see",{},{"id":633,"data":1624,"type":218,"tunes":1626},{"text":1625},"If a document is split poorly, no later retrieval component can fully reconstruct the missing semantic unit. A chunk that cuts a condition away from its exception may embed misleadingly and may also be reranked incorrectly because the candidate text is incomplete.",{},{"id":638,"data":1628,"type":218,"tunes":1630},{"text":1629},"Chunk size, overlap, structural boundaries and metadata therefore affect both candidate recall and reranker judgment. Retrieval evaluation should test the complete ingestion-to-ranking pipeline, not only the embedding model.",{},{"id":643,"data":1632,"type":42,"tunes":1634},{"text":1633,"level":247},"Do not compare retrieval scores as if they were universal probabilities",{},{"id":648,"data":1636,"type":218,"tunes":1638},{"text":1637},"Cosine similarity, BM25 scores, sparse-vector scores, RRF ranks and reranker scores have different meanings. A score of 0.82 from one embedding model is not automatically comparable with 0.82 from another model or with a reranker score.",{},{"id":653,"data":1640,"type":218,"tunes":1642},{"text":1641},"Thresholds should be calibrated for the actual model, corpus and task. Current Elastic guidance also notes that embedding similarity scores can be query-dependent, which makes universal cutoffs risky.",{},{"id":658,"data":1644,"type":42,"tunes":1646},{"text":1645,"level":247},"Evaluate retrieval stages separately",{},{"id":663,"data":1648,"type":362,"tunes":1678},{"content":1649,"stretched":43,"withHeadings":14},[1650,1654,1658,1662,1665,1668,1670,1674],[1651,1652,1653],"Layer","Useful question","Example metric or test",[1655,1656,1657],"Source coverage","Does the corpus contain the needed information?","Coverage audit \u002F known-answer source set",[1659,1660,1661],"Chunking","Is the needed evidence retrievable as a coherent unit?","Chunk-level support review",[1663,1664,681],"First-stage retrieval","Does the relevant item enter the candidate set?",[1666,1667,685],"Ranking","How high does relevant evidence appear?",[687,1669,689],"Does second-stage scoring improve ordering?",[1671,1672,1673],"Context selection","Do the final selected passages contain sufficient support?","Context relevance \u002F coverage",[1675,1676,1677],"Answer stage","Does the model use the selected evidence correctly?","Faithfulness \u002F claim-evidence evaluation",{},{"id":700,"data":1680,"type":218,"tunes":1682},{"text":1681},"This separation is operationally important. If Recall@50 is poor, the reranker is not the first component to fix. If Recall@50 is strong but the best passage remains at rank 38, reranking or ranking fusion becomes a plausible target.",{},{"id":705,"data":1684,"type":42,"tunes":1686},{"text":1685,"level":247},"Which layer actually failed?",{},{"id":710,"data":1688,"type":373,"tunes":1713},{"rows":1689,"title":1705,"layout":362,"columns":1706},[1690,1693,1696,1699,1702],{"id":714,"label":1691,"values":1692},"Relevant document never appears",[344,344,344],{"id":718,"label":1694,"values":1695},"Relevant document appears too low",[344,344,344],{"id":722,"label":1697,"values":1698},"Semantically good but forbidden result",[344,344,344],{"id":726,"label":1700,"values":1701},"Relevant but outdated result",[344,344,344],{"id":730,"label":1703,"values":1704},"Correct result retrieved but omitted from prompt",[344,344,344],"Symptoms and likely retrieval layer",[1707,1709,1711],{"id":736,"label":1708},"Observed symptom",{"id":739,"label":1710},"Likely layer",{"id":742,"label":1712},"First diagnostic",{},{"id":746,"data":1715,"type":42,"tunes":1717},{"text":1716,"level":247},"Relevance and Source of Truth are different",{},{"id":751,"data":1719,"type":218,"tunes":1721},{"text":1720},"A reranker can make a stale document look extremely relevant. A vector index can retrieve a secondary summary that is semantically closer than the primary source. Retrieval quality therefore cannot replace authority rules.",{},{"id":756,"data":1723,"type":218,"tunes":1725},{"text":1724},"Where source authority matters, metadata filters, source classes, version rules and provenance should constrain retrieval before the result becomes model context.",{},{"id":761,"data":1727,"type":226,"tunes":1730},{"body":1728,"title":1729,"variant":233},"Relevance answers whether a candidate fits the query. Source-of-Truth architecture answers whether that candidate is allowed to establish the claim.","Reranking cannot make a non-authoritative source authoritative",{},{"id":767,"data":1732,"type":42,"tunes":1734},{"text":1733,"level":247},"Original implementation evidence",{},{"id":772,"data":1736,"type":42,"tunes":1738},{"text":1737,"level":246},"Source of Truth Research Engine: lexical and semantic retrieval are separate",{},{"id":777,"data":1740,"type":218,"tunes":1742},{"text":1741},"The Source of Truth Research Engine contains a local lexical retrieval path using SQLite FTS5\u002FBM25 and a separate optional semantic retrieval path using locally generated embeddings.",{},{"id":782,"data":1744,"type":218,"tunes":1746},{"text":1745},"Its semantic search implementation computes a query vector and compares it with stored chunk vectors using cosine similarity. The project deliberately treats semantic similarity as a discovery signal rather than evidence: a candidate must still be traced back to a concrete source and locator before it supports a claim.",{},{"id":787,"data":1748,"type":218,"tunes":1750},{"text":1749},"This is useful implementation evidence for R01 because the same corpus can support lexical ranking and vector similarity without confusing either mechanism with evidentiary authority.",{},{"id":792,"data":1752,"type":42,"tunes":1754},{"text":1753,"level":246},"Aaasaasa AI Client: Qdrant is a vector infrastructure component",{},{"id":797,"data":1756,"type":218,"tunes":1758},{"text":1757},"Aaasaasa AI Client includes Qdrant\u002Fvector infrastructure as a separate local resource. The Electron architecture exposes Qdrant services from the trusted main-process side rather than treating vector search as part of the model itself.",{},{"id":802,"data":1760,"type":218,"tunes":1762},{"text":1761},"The repository contains a Qdrant client adapter, Qdrant service configuration and Docker-based Qdrant infrastructure. This demonstrates the architectural separation between AI provider\u002Fmodel execution and vector storage\u002Fsearch.",{},{"id":807,"data":1764,"type":218,"tunes":1766},{"text":1765},"The existence of Qdrant support should not be overstated as a complete production RAG pipeline. The evidence here is narrower: vector infrastructure is implemented as its own component boundary.",{},{"id":812,"data":1768,"type":362,"tunes":1791},{"content":1769,"stretched":43,"withHeadings":14},[1770,1773,1776,1779,1782,1785,1788],[1771,1772],"Implementation evidence","What it demonstrates",[1774,1775],"SQLite FTS5\u002FBM25 in Source of Truth Research Engine","Lexical retrieval can exist independently of embeddings.",[1777,1778],"Local Ollama embeddings","Representation generation is its own stage.",[1780,1781],"Stored semantic vectors + cosine comparison","Semantic retrieval consumes embeddings after they have been produced.",[1783,1784],"Qdrant support in Aaasaasa AI Client","Vector storage\u002Fsearch is an infrastructure capability separate from the model provider.",[1786,1787],"Evidence\u002Fprovenance rules in Source of Truth Research Engine","Retrieved similarity does not equal authority or proof.",[1789,1790],"No claimed custom reranker in these implementations","Reranking is explained as an architectural stage, not falsely claimed as already implemented evidence.",{},{"id":838,"data":1793,"type":226,"tunes":1796},{"body":1794,"title":1795,"variant":240},"The current implementation evidence confirms lexical retrieval, embeddings, vector search infrastructure and provenance-aware retrieval. This article does \u003Cstrong>not\u003C\u002Fstrong> claim that a production cross-encoder reranking service is already implemented in these projects.","Evidence boundary",{},{"id":844,"data":1798,"type":42,"tunes":1800},{"text":1799,"level":247},"When do you need each component?",{},{"id":849,"data":1802,"type":362,"tunes":1830},{"content":1803,"stretched":43,"withHeadings":14},[1804,1807,1810,1813,1816,1819,1821,1824,1827],[1805,1806],"Need","Likely component",[1808,1809],"Semantic similarity across different wording","Embedding model + vector similarity search",[1811,1812],"Efficient search over a large vector corpus","Vector index\u002Fdatabase or vector-capable search engine",[1814,1815],"Exact identifiers, error codes or rare terms","Lexical\u002Ffull-text retrieval such as BM25",[1817,1818],"Both exact terminology and semantic meaning","Hybrid lexical + semantic retrieval",[1820,372],"Candidate set is good but ordering is weak",[1822,1823],"Relevant items are absent from candidate set","Improve source coverage, chunking, retriever, filters or candidate count before reranking",[1825,1826],"Hard tenant\u002Fsource\u002Fversion constraints","Deterministic metadata\u002Fauthorization filtering",[1828,1829],"Small corpus","Potentially simple brute-force similarity or general-purpose database rather than dedicated vector DB",{},{"id":880,"data":1832,"type":42,"tunes":1834},{"text":1833,"level":247},"A practical retrieval design sequence",{},{"id":885,"data":1836,"type":314,"tunes":1869},{"steps":1837,"title":1868,"orientation":313},[1838,1841,1844,1847,1850,1853,1856,1859,1862,1865],{"label":1839,"description":1840},"1. Define the query types","Identify semantic questions, exact lookups, identifiers, current-state reads and domain-specific patterns.",{"label":1842,"description":1843},"2. Define eligible sources","Apply tenant, authorization, locale, version, source class and freshness constraints.",{"label":1845,"description":1846},"3. Establish lexical baseline","Measure whether simple full-text\u002FBM25 retrieval already solves much of the workload.",{"label":1848,"description":1849},"4. Add embeddings where semantic recall is needed","Choose and evaluate an embedding model against representative domain queries.",{"label":1851,"description":1852},"5. Choose vector storage\u002Findexing based on scale","Use brute force, database vector support or a dedicated vector engine according to requirements.",{"label":1854,"description":1855},"6. Evaluate first-stage recall","Confirm that relevant evidence enters a sufficiently large candidate set.",{"label":1857,"description":1858},"7. Add hybrid retrieval if signals are complementary","Fuse lexical and semantic rankings when both materially improve candidate generation.",{"label":1860,"description":1861},"8. Add reranking if ordering remains the bottleneck","Apply the stronger model only to the candidate set where its cost is justified.",{"label":1863,"description":1864},"9. Tune final context selection","Control redundancy, context budget, authority, diversity and evidence coverage before generation.",{"label":1866,"description":1867},"10. Evaluate end-to-end","Measure retrieval, context and answer quality separately so failures can be localized.","Design retrieval from requirements, not from product names",{},{"id":921,"data":1871,"type":42,"tunes":1873},{"text":1872,"level":247},"Common misconceptions",{},{"id":926,"data":1875,"type":362,"tunes":1909},{"content":1876,"stretched":43,"withHeadings":14},[1877,1879,1882,1885,1888,1891,1894,1897,1900,1903,1906],[1878,931],"Misconception",[1880,1881],"“An embedding is a vector database.”","An embedding is a representation; the database\u002Findex stores and searches representations.",[1883,1884],"“A vector database creates semantic meaning.”","The embedding model creates the representation; the vector system indexes and compares it.",[1886,1887],"“RAG requires a vector database.”","RAG requires retrieval, not a specific retrieval technology.",[1889,1890],"“Reranking is the same as vector search.”","Vector search generates candidates; reranking reorders a candidate set.",[1892,1893],"“Rerankers fix poor recall.”","They cannot promote a document that was never retrieved.",[1895,1896],"“Dense search replaces BM25.”","Lexical search remains valuable for exact terms, identifiers and specialized vocabulary.",[1898,1899],"“Higher similarity means more authoritative.”","Similarity and source authority are different dimensions.",[1901,1902],"“More top-k always improves RAG.”","Larger candidate sets can improve recall but add latency, noise and context-selection burden.",[1904,1905],"“One score threshold works everywhere.”","Scores depend on model, query, corpus and retrieval method and must be calibrated.",[1907,1908],"“A dedicated vector DB is always more advanced.”","It is only justified when its operational and retrieval capabilities match the requirements.",{},{"id":964,"data":1911,"type":42,"tunes":1913},{"text":1912,"level":247},"Edge cases and limitations",{},{"id":969,"data":1915,"type":218,"tunes":1917},{"text":1916},"Some applications do not need semantic search. Exact database lookup or structured SQL can be more correct, faster and easier to audit than embedding retrieval.",{},{"id":974,"data":1919,"type":218,"tunes":1921},{"text":1920},"Some corpora are so small that a full vector scan is acceptable. Approximate indexing adds complexity without meaningful benefit.",{},{"id":979,"data":1923,"type":218,"tunes":1925},{"text":1924},"Some queries require high recall before any precision optimization. Legal discovery, research and compliance review may prefer broad candidate retrieval followed by transparent filtering and human review.",{},{"id":984,"data":1927,"type":218,"tunes":1929},{"text":1928},"Multilingual and domain-specific retrieval can behave very differently across embedding models. Benchmark claims from public datasets should not be treated as proof for a private corpus.",{},{"id":989,"data":1931,"type":218,"tunes":1933},{"text":1932},"Reranking latency grows with the number and length of candidates. Candidate size should therefore be tuned as an accuracy\u002Fcost\u002Flatency variable rather than copied from a tutorial.",{},{"id":994,"data":1935,"type":42,"tunes":1937},{"text":1936,"level":247},"What would change this answer?",{},{"id":999,"data":1939,"type":218,"tunes":1941},{"text":1940},"The component boundaries would not change if a vendor packages embedding generation, vector indexing and reranking behind one API. The product may hide the stages, but they remain conceptually different responsibilities with different failure modes.",{},{"id":1004,"data":1943,"type":218,"tunes":1945},{"text":1944},"Future embedding or retrieval models may reduce the need for separate reranking in some workloads, while stronger late-interaction or learned sparse methods can blur traditional dense\u002Flexical categories. The architecture should still ask which stage produces representations, which stage generates candidates and which stage refines ranking.",{},{"id":1009,"data":1947,"type":218,"tunes":1949},{"text":1948},"The best design also changes with corpus size, query mix, language, domain terminology, update frequency, source authority, latency budget and evaluation results.",{},{"id":1014,"data":1951,"type":42,"tunes":1953},{"text":1952,"level":247},"Related canonical knowledge",{},{"id":1019,"data":1955,"type":218,"tunes":1957},{"text":1956},"R01 assumes the basic RAG concept is already understood. RAG is the wider pattern in which retrieved external information is supplied to a model; embeddings, vector search and reranking are optional retrieval components inside that pattern.",{},{"id":1024,"data":1959,"type":1030,"tunes":1964},{"url":1960,"title":1961,"excerpt":1962,"ctaLabel":1963},"https:\u002F\u002Fstajic.de\u002Fblog\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works","What Is RAG? The Simplest Explanation of How It Works","A plain-English foundation for how retrieval brings external knowledge into the model context.","Read the RAG foundation",{},{"id":1033,"data":1966,"type":218,"tunes":1968},{"text":1967},"When retrieval fails, diagnose source coverage, retrieval, ranking, context assembly and generation separately rather than treating the whole system as one “RAG failure.”",{},{"id":1038,"data":1970,"type":1030,"tunes":1975},{"url":1971,"title":1972,"excerpt":1973,"ctaLabel":1974},"https:\u002F\u002Fstajic.de\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","RAG Failed — But Which Layer Actually Failed? A Diagnostic Method","A layer-by-layer method for isolating source coverage, retrieval, ranking, context assembly, generation, evidence attribution and freshness failures.","Read the RAG diagnostic method",{},{"id":1046,"data":1977,"type":218,"tunes":1979},{"text":1978},"Source-of-Truth architecture is the authority layer around retrieval: it decides which source can establish a claim, while embeddings and ranking only decide which candidates appear relevant.",{},{"id":1051,"data":1981,"type":42,"tunes":1983},{"text":1982,"level":247},"Frequently asked questions",{},{"id":1056,"data":1985,"type":1056,"tunes":2012},{"items":1986,"title":2011},[1987,1990,1993,1996,1999,2002,2005,2008],{"id":1060,"answer":1988,"question":1989},"Embeddings are numerical representations produced by a model. A vector database or vector index stores and searches those representations together with IDs and metadata.","What is the difference between embeddings and a vector database?",{"id":1064,"answer":1991,"question":1992},"A reranker takes an already retrieved candidate set and re-scores or reorders those candidates using a stronger relevance model or scoring method.","What does a reranker do?",{"id":1068,"answer":1994,"question":1995},"No. RAG requires retrieval of external information. Retrieval can use lexical search, SQL, APIs, graphs, vector search, hybrid search or combinations of these.","Does RAG require a vector database?",{"id":1072,"answer":1997,"question":1998},"Rerankers commonly perform more expensive query-document interaction, so they are usually applied to a small top-k candidate set after a faster first-stage retriever.","Why not use the reranker on the whole corpus?",{"id":1076,"answer":2000,"question":2001},"No. If the relevant document was not retrieved into the candidate set, reranking has nothing to promote.","Can reranking fix a missing document?",{"id":1080,"answer":2003,"question":2004},"No. It is a similarity measure whose numeric meaning depends on the embedding model and corpus. It should not be treated as a universal probability of relevance.","Is cosine similarity a relevance probability?",{"id":1084,"answer":2006,"question":2007},"Use hybrid retrieval when evaluation shows that lexical and semantic signals recover complementary relevant documents. It is not automatically better for every corpus.","Should I use BM25 and vector search together?",{"id":1088,"answer":2009,"question":2010},"When vector indexing, filtering, scale, updates, distributed operation or other vector-specific requirements justify a specialized system. Small workloads may not need one.","When do I need a dedicated vector database?","Embeddings, vector databases and reranking",{},{"id":1094,"data":2014,"type":42,"tunes":2016},{"text":2015,"level":247},"Glossary",{},{"id":1099,"data":2018,"type":1099,"tunes":2056},{"title":2019,"entries":2020},"Key retrieval terms",[2021,2023,2026,2029,2032,2035,2037,2039,2041,2044,2046,2049,2052,2054],{"term":366,"anchor":365,"definition":2022},"A numerical representation of content produced by an embedding model for similarity, clustering, retrieval or related tasks.",{"term":2024,"anchor":1107,"definition":2025},"Dense vector","A vector representation in which many dimensions carry non-zero values, commonly used in semantic retrieval.",{"term":2027,"anchor":1111,"definition":2028},"Sparse vector","A high-dimensional representation in which most dimensions are zero, often preserving stronger token- or term-like structure.",{"term":2030,"anchor":1115,"definition":2031},"Vector index","A data structure that organizes vectors for efficient similarity or nearest-neighbor retrieval.",{"term":2033,"anchor":1119,"definition":2034},"Vector database","A storage\u002Fsearch system designed to manage vectors, associated metadata and vector retrieval workloads.",{"term":1122,"anchor":1123,"definition":2036},"Approximate nearest-neighbor search, which trades exact exhaustive comparison for faster retrieval at scale.",{"term":1126,"anchor":1127,"definition":2038},"Hierarchical Navigable Small World, a graph-based approximate nearest-neighbor indexing approach widely used for vector retrieval.",{"term":1130,"anchor":1131,"definition":2040},"A lexical relevance-ranking method based on term occurrence and corpus statistics, widely used in full-text search.",{"term":2042,"anchor":1135,"definition":2043},"Hybrid search","Retrieval that combines results or scores from multiple retrieval methods such as lexical and vector search.",{"term":687,"anchor":1139,"definition":2045},"A later retrieval stage that re-scores and reorders an already generated candidate set.",{"term":2047,"anchor":1143,"definition":2048},"Bi-encoder","An architecture that encodes query and candidate independently, enabling precomputation and scalable similarity search.",{"term":2050,"anchor":1147,"definition":2051},"Cross-encoder","A model that jointly processes a query and candidate text, often improving relevance judgment at higher computational cost.",{"term":681,"anchor":1150,"definition":2053},"The fraction of relevant items recovered within the top k retrieved candidates.",{"term":1153,"anchor":1154,"definition":2055},"Normalized Discounted Cumulative Gain, a ranking metric that rewards relevant results appearing higher in an ordered list.",{},{"id":1158,"data":2058,"type":42,"tunes":2059},{"text":1160,"level":247},{},{"id":1163,"data":2061,"type":218,"tunes":2063},{"text":2062},"The clean retrieval model is simple: embeddings represent meaning, vector search retrieves candidates, and rerankers refine candidate ordering.",{},{"id":1168,"data":2065,"type":218,"tunes":2067},{"text":2066},"Once those boundaries are explicit, architecture decisions become easier to diagnose. Missing candidates point toward source coverage, chunking, embeddings, filters or first-stage retrieval. Poor ordering points toward ranking, fusion or reranking. Incorrect final answers can then be investigated separately at context and generation layers.",{},{"id":1173,"data":2069,"type":218,"tunes":2071},{"text":2070},"The most important result is not choosing the most fashionable retrieval component. It is building a retrieval pipeline whose stages, authority boundaries, metrics and failure modes can be measured independently.",{},{"id":1178,"data":2073,"type":42,"tunes":2075},{"text":2074,"level":247},"Primary sources and implementation evidence",{},{"id":1183,"data":2077,"type":218,"tunes":2079},{"text":2078},"The external references below document the representation, vector-search and reranking mechanisms used in this article. Project-specific sections are original implementation evidence and are intentionally narrower than claims about complete production RAG maturity.",{},{"id":1188,"data":2081,"type":1195,"tunes":2086},{"link":1190,"meta":2082},{"image":2083,"title":2084,"description":2085},{"url":344},"Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks","Foundational paper demonstrating independently computable sentence embeddings for efficient semantic similarity search.",{},{"id":1198,"data":2088,"type":1195,"tunes":2093},{"link":1200,"meta":2089},{"image":2090,"title":2091,"description":2092},{"url":344},"Qdrant — Architecture and data structure overview","Official documentation describing collections, points, vectors, payload metadata and HNSW-based similarity indexing.",{},{"id":1207,"data":2095,"type":1195,"tunes":2100},{"link":1209,"meta":2096},{"image":2097,"title":2098,"description":2099},{"url":344},"Qdrant — Search","Official vector-search documentation covering similarity queries, filtering, exact versus approximate search and dense\u002Fsparse behavior.",{},{"id":1216,"data":2102,"type":1195,"tunes":2107},{"link":1218,"meta":2103},{"image":2104,"title":2105,"description":2106},{"url":344},"Elastic — Vector search","Current documentation on dense\u002Fsparse vector retrieval, lexical\u002Fvector combinations and multi-stage search pipelines.",{},{"id":1225,"data":2109,"type":1195,"tunes":2114},{"link":1227,"meta":2110},{"image":2111,"title":2112,"description":2113},{"url":344},"Elastic — Semantic reranking","Current guidance defining semantic reranking as a later-stage relevance operation over a smaller candidate set.",{},{"id":1234,"data":2116,"type":1195,"tunes":2121},{"link":1236,"meta":2117},{"image":2118,"title":2119,"description":2120},{"url":344},"Cohere — Reranking with Cohere","Current documentation showing reranking as a second-stage improvement over lexical or semantic first-stage retrieval.",{},{"id":1243,"data":2123,"type":1195,"tunes":2127},{"link":1245,"meta":2124},{"image":2125,"title":1248,"description":2126},{"url":344},"Official SQLite documentation for full-text search and the built-in BM25 ranking function used as lexical retrieval evidence.",{},"2.31.6","Embeddings represent meaning, vector databases retrieve candidates, and rerankers refine results. Learn how these three retrieval layers differ and work together in RAG.",{"lang":7,"title":208,"content":210,"contentJson":2131,"excerpt":1252},{"time":212,"blocks":2132,"version":1251},[2133,2136,2139,2142,2145,2148,2151,2154,2157,2160,2163,2166,2169,2172,2182,2185,2188,2191,2194,2212,2215,2218,2221,2224,2227,2230,2233,2236,2239,2242,2245,2248,2251,2254,2257,2260,2263,2266,2269,2272,2275,2278,2281,2284,2287,2290,2293,2296,2299,2302,2305,2308,2311,2321,2324,2327,2330,2333,2336,2339,2342,2345,2348,2351,2354,2357,2360,2363,2366,2369,2372,2375,2387,2390,2393,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444,2447,2450,2461,2464,2467,2480,2483,2497,2500,2515,2518,2521,2524,2527,2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2563,2566,2578,2581,2599,2602,2605,2608,2611,2614,2617,2622,2627,2632,2637,2642,2647],{"id":215,"data":2134,"type":218,"tunes":2135},{"text":217},{},{"id":221,"data":2137,"type":226,"tunes":2138},{"body":223,"title":224,"variant":225},{},{"id":229,"data":2140,"type":226,"tunes":2141},{"body":231,"title":232,"variant":233},{},{"id":236,"data":2143,"type":226,"tunes":2144},{"body":238,"title":239,"variant":240},{},{"id":243,"data":2146,"type":248,"tunes":2147},{"title":245,"maxLevel":246,"minLevel":247},{},{"id":251,"data":2149,"type":42,"tunes":2150},{"text":253,"level":247},{},{"id":256,"data":2152,"type":218,"tunes":2153},{"text":258},{},{"id":261,"data":2155,"type":218,"tunes":2156},{"text":263},{},{"id":266,"data":2158,"type":218,"tunes":2159},{"text":268},{},{"id":271,"data":2161,"type":42,"tunes":2162},{"text":273,"level":247},{},{"id":276,"data":2164,"type":218,"tunes":2165},{"text":278},{},{"id":281,"data":2167,"type":218,"tunes":2168},{"text":283},{},{"id":286,"data":2170,"type":218,"tunes":2171},{"text":288},{},{"id":291,"data":2173,"type":314,"tunes":2181},{"steps":2174,"title":312,"orientation":313},[2175,2176,2177,2178,2179,2180],{"label":295,"description":296},{"label":298,"description":299},{"label":301,"description":302},{"label":304,"description":305},{"label":307,"description":308},{"label":310,"description":311},{},{"id":317,"data":2183,"type":42,"tunes":2184},{"text":319,"level":247},{},{"id":322,"data":2186,"type":218,"tunes":2187},{"text":324},{},{"id":327,"data":2189,"type":218,"tunes":2190},{"text":329},{},{"id":332,"data":2192,"type":218,"tunes":2193},{"text":334},{},{"id":337,"data":2195,"type":373,"tunes":2211},{"rows":2196,"title":361,"layout":362,"columns":2207},[2197,2199,2201,2203,2205],{"id":341,"label":342,"values":2198},[344,344,344],{"id":346,"label":347,"values":2200},[344,344,344],{"id":350,"label":351,"values":2202},[344,344,344],{"id":354,"label":355,"values":2204},[344,344,344],{"id":358,"label":359,"values":2206},[344,344,344],[2208,2209,2210],{"id":365,"label":366},{"id":368,"label":369},{"id":371,"label":372},{},{"id":376,"data":2213,"type":42,"tunes":2214},{"text":378,"level":247},{},{"id":381,"data":2216,"type":218,"tunes":2217},{"text":383},{},{"id":386,"data":2219,"type":218,"tunes":2220},{"text":388},{},{"id":391,"data":2222,"type":218,"tunes":2223},{"text":393},{},{"id":396,"data":2225,"type":42,"tunes":2226},{"text":398,"level":246},{},{"id":401,"data":2228,"type":218,"tunes":2229},{"text":403},{},{"id":406,"data":2231,"type":218,"tunes":2232},{"text":408},{},{"id":411,"data":2234,"type":42,"tunes":2235},{"text":413,"level":246},{},{"id":416,"data":2237,"type":218,"tunes":2238},{"text":418},{},{"id":421,"data":2240,"type":218,"tunes":2241},{"text":423},{},{"id":426,"data":2243,"type":42,"tunes":2244},{"text":428,"level":246},{},{"id":431,"data":2246,"type":218,"tunes":2247},{"text":433},{},{"id":436,"data":2249,"type":218,"tunes":2250},{"text":438},{},{"id":441,"data":2252,"type":226,"tunes":2253},{"body":443,"title":444,"variant":233},{},{"id":447,"data":2255,"type":42,"tunes":2256},{"text":449,"level":247},{},{"id":452,"data":2258,"type":218,"tunes":2259},{"text":454},{},{"id":457,"data":2261,"type":218,"tunes":2262},{"text":459},{},{"id":462,"data":2264,"type":218,"tunes":2265},{"text":464},{},{"id":467,"data":2267,"type":42,"tunes":2268},{"text":469,"level":246},{},{"id":472,"data":2270,"type":218,"tunes":2271},{"text":474},{},{"id":477,"data":2273,"type":218,"tunes":2274},{"text":479},{},{"id":482,"data":2276,"type":218,"tunes":2277},{"text":484},{},{"id":487,"data":2279,"type":42,"tunes":2280},{"text":489,"level":246},{},{"id":492,"data":2282,"type":218,"tunes":2283},{"text":494},{},{"id":497,"data":2285,"type":218,"tunes":2286},{"text":499},{},{"id":502,"data":2288,"type":42,"tunes":2289},{"text":504,"level":246},{},{"id":507,"data":2291,"type":218,"tunes":2292},{"text":509},{},{"id":512,"data":2294,"type":218,"tunes":2295},{"text":514},{},{"id":517,"data":2297,"type":42,"tunes":2298},{"text":519,"level":247},{},{"id":522,"data":2300,"type":218,"tunes":2301},{"text":524},{},{"id":527,"data":2303,"type":218,"tunes":2304},{"text":529},{},{"id":532,"data":2306,"type":218,"tunes":2307},{"text":534},{},{"id":537,"data":2309,"type":42,"tunes":2310},{"text":539,"level":246},{},{"id":542,"data":2312,"type":362,"tunes":2320},{"content":2313,"stretched":43,"withHeadings":14},[2314,2315,2316,2317,2318,2319],[546,547,548],[550,551,552],[554,555,556],[558,559,560],[562,563,564],[566,567,568],{},{"id":571,"data":2322,"type":42,"tunes":2323},{"text":573,"level":246},{},{"id":576,"data":2325,"type":218,"tunes":2326},{"text":578},{},{"id":581,"data":2328,"type":218,"tunes":2329},{"text":583},{},{"id":586,"data":2331,"type":226,"tunes":2332},{"body":588,"title":589,"variant":590},{},{"id":593,"data":2334,"type":42,"tunes":2335},{"text":595,"level":247},{},{"id":598,"data":2337,"type":218,"tunes":2338},{"text":600},{},{"id":603,"data":2340,"type":218,"tunes":2341},{"text":605},{},{"id":608,"data":2343,"type":218,"tunes":2344},{"text":610},{},{"id":613,"data":2346,"type":42,"tunes":2347},{"text":615,"level":246},{},{"id":618,"data":2349,"type":218,"tunes":2350},{"text":620},{},{"id":623,"data":2352,"type":218,"tunes":2353},{"text":625},{},{"id":628,"data":2355,"type":42,"tunes":2356},{"text":630,"level":247},{},{"id":633,"data":2358,"type":218,"tunes":2359},{"text":635},{},{"id":638,"data":2361,"type":218,"tunes":2362},{"text":640},{},{"id":643,"data":2364,"type":42,"tunes":2365},{"text":645,"level":247},{},{"id":648,"data":2367,"type":218,"tunes":2368},{"text":650},{},{"id":653,"data":2370,"type":218,"tunes":2371},{"text":655},{},{"id":658,"data":2373,"type":42,"tunes":2374},{"text":660,"level":247},{},{"id":663,"data":2376,"type":362,"tunes":2386},{"content":2377,"stretched":43,"withHeadings":14},[2378,2379,2380,2381,2382,2383,2384,2385],[667,668,669],[671,672,673],[675,676,677],[679,680,681],[683,684,685],[687,688,689],[691,692,693],[695,696,697],{},{"id":700,"data":2388,"type":218,"tunes":2389},{"text":702},{},{"id":705,"data":2391,"type":42,"tunes":2392},{"text":707,"level":247},{},{"id":710,"data":2394,"type":373,"tunes":2410},{"rows":2395,"title":733,"layout":362,"columns":2406},[2396,2398,2400,2402,2404],{"id":714,"label":715,"values":2397},[344,344,344],{"id":718,"label":719,"values":2399},[344,344,344],{"id":722,"label":723,"values":2401},[344,344,344],{"id":726,"label":727,"values":2403},[344,344,344],{"id":730,"label":731,"values":2405},[344,344,344],[2407,2408,2409],{"id":736,"label":737},{"id":739,"label":740},{"id":742,"label":743},{},{"id":746,"data":2412,"type":42,"tunes":2413},{"text":748,"level":247},{},{"id":751,"data":2415,"type":218,"tunes":2416},{"text":753},{},{"id":756,"data":2418,"type":218,"tunes":2419},{"text":758},{},{"id":761,"data":2421,"type":226,"tunes":2422},{"body":763,"title":764,"variant":233},{},{"id":767,"data":2424,"type":42,"tunes":2425},{"text":769,"level":247},{},{"id":772,"data":2427,"type":42,"tunes":2428},{"text":774,"level":246},{},{"id":777,"data":2430,"type":218,"tunes":2431},{"text":779},{},{"id":782,"data":2433,"type":218,"tunes":2434},{"text":784},{},{"id":787,"data":2436,"type":218,"tunes":2437},{"text":789},{},{"id":792,"data":2439,"type":42,"tunes":2440},{"text":794,"level":246},{},{"id":797,"data":2442,"type":218,"tunes":2443},{"text":799},{},{"id":802,"data":2445,"type":218,"tunes":2446},{"text":804},{},{"id":807,"data":2448,"type":218,"tunes":2449},{"text":809},{},{"id":812,"data":2451,"type":362,"tunes":2460},{"content":2452,"stretched":43,"withHeadings":14},[2453,2454,2455,2456,2457,2458,2459],[816,817],[819,820],[822,823],[825,826],[828,829],[831,832],[834,835],{},{"id":838,"data":2462,"type":226,"tunes":2463},{"body":840,"title":841,"variant":240},{},{"id":844,"data":2465,"type":42,"tunes":2466},{"text":846,"level":247},{},{"id":849,"data":2468,"type":362,"tunes":2479},{"content":2469,"stretched":43,"withHeadings":14},[2470,2471,2472,2473,2474,2475,2476,2477,2478],[853,854],[856,857],[859,860],[862,863],[865,866],[868,372],[870,871],[873,874],[876,877],{},{"id":880,"data":2481,"type":42,"tunes":2482},{"text":882,"level":247},{},{"id":885,"data":2484,"type":314,"tunes":2496},{"steps":2485,"title":918,"orientation":313},[2486,2487,2488,2489,2490,2491,2492,2493,2494,2495],{"label":889,"description":890},{"label":892,"description":893},{"label":895,"description":896},{"label":898,"description":899},{"label":901,"description":902},{"label":904,"description":905},{"label":907,"description":908},{"label":910,"description":911},{"label":913,"description":914},{"label":916,"description":917},{},{"id":921,"data":2498,"type":42,"tunes":2499},{"text":923,"level":247},{},{"id":926,"data":2501,"type":362,"tunes":2514},{"content":2502,"stretched":43,"withHeadings":14},[2503,2504,2505,2506,2507,2508,2509,2510,2511,2512,2513],[930,931],[933,934],[936,937],[939,940],[942,943],[945,946],[948,949],[951,952],[954,955],[957,958],[960,961],{},{"id":964,"data":2516,"type":42,"tunes":2517},{"text":966,"level":247},{},{"id":969,"data":2519,"type":218,"tunes":2520},{"text":971},{},{"id":974,"data":2522,"type":218,"tunes":2523},{"text":976},{},{"id":979,"data":2525,"type":218,"tunes":2526},{"text":981},{},{"id":984,"data":2528,"type":218,"tunes":2529},{"text":986},{},{"id":989,"data":2531,"type":218,"tunes":2532},{"text":991},{},{"id":994,"data":2534,"type":42,"tunes":2535},{"text":996,"level":247},{},{"id":999,"data":2537,"type":218,"tunes":2538},{"text":1001},{},{"id":1004,"data":2540,"type":218,"tunes":2541},{"text":1006},{},{"id":1009,"data":2543,"type":218,"tunes":2544},{"text":1011},{},{"id":1014,"data":2546,"type":42,"tunes":2547},{"text":1016,"level":247},{},{"id":1019,"data":2549,"type":218,"tunes":2550},{"text":1021},{},{"id":1024,"data":2552,"type":1030,"tunes":2553},{"url":1026,"title":1027,"excerpt":1028,"ctaLabel":1029},{},{"id":1033,"data":2555,"type":218,"tunes":2556},{"text":1035},{},{"id":1038,"data":2558,"type":1030,"tunes":2559},{"url":1040,"title":1041,"excerpt":1042,"ctaLabel":1043},{},{"id":1046,"data":2561,"type":218,"tunes":2562},{"text":1048},{},{"id":1051,"data":2564,"type":42,"tunes":2565},{"text":1053,"level":247},{},{"id":1056,"data":2567,"type":1056,"tunes":2577},{"items":2568,"title":1091},[2569,2570,2571,2572,2573,2574,2575,2576],{"id":1060,"answer":1061,"question":1062},{"id":1064,"answer":1065,"question":1066},{"id":1068,"answer":1069,"question":1070},{"id":1072,"answer":1073,"question":1074},{"id":1076,"answer":1077,"question":1078},{"id":1080,"answer":1081,"question":1082},{"id":1084,"answer":1085,"question":1086},{"id":1088,"answer":1089,"question":1090},{},{"id":1094,"data":2579,"type":42,"tunes":2580},{"text":1096,"level":247},{},{"id":1099,"data":2582,"type":1099,"tunes":2598},{"title":1101,"entries":2583},[2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597],{"term":366,"anchor":365,"definition":1104},{"term":1106,"anchor":1107,"definition":1108},{"term":1110,"anchor":1111,"definition":1112},{"term":1114,"anchor":1115,"definition":1116},{"term":1118,"anchor":1119,"definition":1120},{"term":1122,"anchor":1123,"definition":1124},{"term":1126,"anchor":1127,"definition":1128},{"term":1130,"anchor":1131,"definition":1132},{"term":1134,"anchor":1135,"definition":1136},{"term":1138,"anchor":1139,"definition":1140},{"term":1142,"anchor":1143,"definition":1144},{"term":1146,"anchor":1147,"definition":1148},{"term":681,"anchor":1150,"definition":1151},{"term":1153,"anchor":1154,"definition":1155},{},{"id":1158,"data":2600,"type":42,"tunes":2601},{"text":1160,"level":247},{},{"id":1163,"data":2603,"type":218,"tunes":2604},{"text":1165},{},{"id":1168,"data":2606,"type":218,"tunes":2607},{"text":1170},{},{"id":1173,"data":2609,"type":218,"tunes":2610},{"text":1175},{},{"id":1178,"data":2612,"type":42,"tunes":2613},{"text":1180,"level":247},{},{"id":1183,"data":2615,"type":218,"tunes":2616},{"text":1185},{},{"id":1188,"data":2618,"type":1195,"tunes":2621},{"link":1190,"meta":2619},{"image":2620,"title":1193,"description":1194},{"url":344},{},{"id":1198,"data":2623,"type":1195,"tunes":2626},{"link":1200,"meta":2624},{"image":2625,"title":1203,"description":1204},{"url":344},{},{"id":1207,"data":2628,"type":1195,"tunes":2631},{"link":1209,"meta":2629},{"image":2630,"title":1212,"description":1213},{"url":344},{},{"id":1216,"data":2633,"type":1195,"tunes":2636},{"link":1218,"meta":2634},{"image":2635,"title":1221,"description":1222},{"url":344},{},{"id":1225,"data":2638,"type":1195,"tunes":2641},{"link":1227,"meta":2639},{"image":2640,"title":1230,"description":1231},{"url":344},{},{"id":1234,"data":2643,"type":1195,"tunes":2646},{"link":1236,"meta":2644},{"image":2645,"title":1239,"description":1240},{"url":344},{},{"id":1243,"data":2648,"type":1195,"tunes":2651},{"link":1245,"meta":2649},{"image":2650,"title":1248,"description":1249},{"url":344},{},"Post erfolgreich abgerufen",{"items":2654,"source":2739,"manualIds":2740,"manualMatchedIds":2741},[2655,2662,2669,2676,2683,2690,2697,2704,2711,2718,2725,2732],{"id":2656,"slug":2657,"title":2658,"excerpt":2659,"featuredImage":2660,"publishedAt":2661},"485","enterprise-ai-architecture-what-changes-when-ai-enters-a-company","Architecture de l’IA en entreprise : ce qui change lorsque l’IA entre dans une entreprise","L'architecture de l'IA en entreprise explique comment l'IA transforme les systèmes d'entreprise à travers l'autorité des données, l'identité, les autorisations, les fournisseurs, les risques, la gouvernance, l'évaluation, la conformité et les opérations.","\u002Fuploads\u002F2026\u002F10\u002Fenterprise-ai-architecture-what-changes-when-ai-enters-a-company-1791478161363-czrwaq.webp","2026-10-08T10:48:00.000Z",{"id":2663,"slug":2664,"title":2665,"excerpt":2666,"featuredImage":2667,"publishedAt":2668},"363","front-und-backend-entwicklung","Développement front-end et back-end","Le développement front-end et back-end est une partie essentielle du développement web et implique la création d'applications web et de sites web. Le développement front-end se concentre sur l'interface utilisateur, tandis que le développement back-end est responsable de la programmation et de la gestion côté serveur.","\u002Fuploads\u002F2026\u002F03\u002Ffront-und-backend-entwicklung-1774872219531-wyu4i1.webp","2023-04-12T11:11:00.000Z",{"id":2670,"slug":2671,"title":2672,"excerpt":2673,"featuredImage":2674,"publishedAt":2675},"486","source-of-truth-in-ai-systems-where-reliable-knowledge-actually-comes-from","Source de vérité dans les systèmes d’IA : d’où provient réellement une connaissance fiable","Une source de vérité définit quelle source fait autorité pour un fait ou un état spécifique. Découvrez en quoi elle diffère du RAG, de la provenance, de la mémoire, du contexte, des bases de données vectorielles et des systèmes d'enregistrement.","\u002Fuploads\u002F2026\u002F10\u002Fsource-of-truth-in-ai-systems-where-reliable-knowledge-actually-comes-from-1791479103235-6bq9em.webp","2026-10-08T13:02:00.000Z",{"id":2677,"slug":2678,"title":2679,"excerpt":2680,"featuredImage":2681,"publishedAt":2682},"480","when-should-an-ai-stop-trusting-its-own-knowledge-the-retrieval-trigger","Quand une IA devrait-elle cesser de faire confiance à ses propres connaissances ? — Le déclencheur de récupération","Un modèle d'IA n'a pas besoin de récupération pour chaque question. Le problème important est de savoir quand ses connaissances internes ne suffisent plus. Le Déclencheur de Récupération est une frontière de décision pratique qui détermine quand un système d'IA devrait cesser de se fier uniquement aux connaissances du modèle et obtenir des preuves externes avant de répondre.","\u002Fuploads\u002F2026\u002F09\u002Fwhen-should-an-ai-stop-trusting-its-own-knowledge-the-retrieval-trigger-1790574991244-f4rpyg.webp","2026-09-28T01:49:00.000Z",{"id":2684,"slug":2685,"title":2686,"excerpt":2687,"featuredImage":2688,"publishedAt":2689},"495","sovereign-ai-control-of-models-data-infrastructure-and-dependencies","IA souveraine : contrôle des modèles, des données, des infrastructures et des dépendances","L'IA souveraine concerne le contrôle effectif sur les modèles, les données, l'infrastructure, les logiciels, les opérations et les dépendances stratégiques — et non simplement l'endroit où un modèle d'IA est hébergé.","\u002Fuploads\u002F2026\u002F10\u002Fsovereign-ai-control-of-models-data-infrastructure-and-dependencies-1791488833132-niy85x.webp","2026-10-08T15:45:00.000Z",{"id":2691,"slug":2692,"title":2693,"excerpt":2694,"featuredImage":2695,"publishedAt":2696},"479","where-does-an-llm-get-its-data-rag-data-sources-in-python","D'où un LLM tire-t-il ses données ? Sources de données RAG en Python","Un LLM ne connaît pas magiquement vos fichiers, bases de données ou API. Cette suite pratique de la série sur le RAG montre, avec du Python simple, comment des données externes deviennent des preuves récupérables : des fichiers texte et du SQL à la recherche en texte intégral, aux embeddings, à l'assemblage du contexte et à l'appel final au LLM.","\u002Fuploads\u002F2026\u002F09\u002Fwhere-does-an-llm-get-its-data-rag-data-sources-in-python-1790517200521-nfsi5i.webp","2026-09-27T05:51:00.000Z",{"id":2698,"slug":2699,"title":2700,"excerpt":2701,"featuredImage":2702,"publishedAt":2703},"476","mcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained","MCP vs A2A vs UCP vs AP2 vs A2UI : La pile de protocoles d'agent expliquée","MCP, A2A, UCP, AP2 et A2UI sont souvent présentés comme des standards d'agents concurrents. Ils résolvent principalement des problèmes d'interopérabilité différents. Ce guide associe chaque protocole à la frontière qu'il standardise réellement—et montre comment ils peuvent fonctionner ensemble dans un seul système de production.","\u002Fuploads\u002F2026\u002F09\u002Fmcp-vs-a2a-vs-ucp-vs-ap2-vs-a2ui-the-agent-protocol-stack-explained-1790352625869-2ezle0.webp","2026-09-25T12:09:00.000Z",{"id":2705,"slug":2706,"title":2707,"excerpt":2708,"featuredImage":2709,"publishedAt":2710},"472","why-more-context-can-make-ai-answers-worse","Pourquoi plus de contexte peut rendre les réponses de l'IA pires","Une fenêtre de contexte plus grande ne garantit pas une meilleure réponse. Cet article explique comment la dilution du signal, les preuves contradictoires, l'état obsolète, la sensibilité à la position et la compression avec perte peuvent réduire la fiabilité de l'IA — et présente un test pratique de pression de contexte.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-more-context-can-make-ai-answers-worse-1790351615793-2ntv2v.webp","2026-09-25T11:51:00.000Z",{"id":2712,"slug":2713,"title":2714,"excerpt":2715,"featuredImage":2716,"publishedAt":2717},"484","what-is-an-ai-platform-architect-models-data-runtime-security-and-operations","Qu'est-ce qu'un architecte de plateforme d'IA ? Modèles, données, environnement d'exécution, sécurité et opérations","Un architecte de plateforme d'IA conçoit des fondations d'IA réutilisables à travers les modèles, les fournisseurs, la récupération, les agents, l'identité, la sécurité, l'évaluation, l'observabilité et les opérations.","\u002Fuploads\u002F2026\u002F10\u002Fwhat-is-an-ai-platform-architect-models-data-runtime-security-and-operations-1791477229171-ou3zcc.webp","2026-10-08T12:32:00.000Z",{"id":2719,"slug":2720,"title":2721,"excerpt":2722,"featuredImage":2723,"publishedAt":2724},"494","air-gapped-ai-how-ai-systems-work-without-internet-or-cloud-access","IA en environnement isolé : comment les systèmes d’IA fonctionnent sans accès à Internet ni au cloud","L'IA en environnement isolé exécute des modèles, du RAG et des applications d'IA à l'intérieur d'un domaine de sécurité isolé, sans dépendance à Internet ni au cloud. Découvrez comment les modèles, les données, les mises à jour et les outils fonctionnent hors ligne.","\u002Fuploads\u002F2026\u002F10\u002Fair-gapped-ai-how-ai-systems-work-without-internet-or-cloud-access-1791487983978-e6xqf0.webp","2026-10-08T11:32:00.000Z",{"id":2726,"slug":2727,"title":2728,"excerpt":2729,"featuredImage":2730,"publishedAt":2731},"492","mcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits","MCP expliqué : ce qu'il connecte, ce qu'il ne fait pas et où il s'intègre","Le protocole de contexte de modèle connecte les applications d’IA à des outils, des ressources et des invites externes par le biais d’une frontière standard client-serveur. Découvrez ce que fait le MCP, ce qu’il ne fait pas et où il s’intègre dans l’architecture des agents.","\u002Fuploads\u002F2026\u002F10\u002Fmcp-explained-what-it-connects-what-it-does-not-do-and-where-it-fits-1791486640275-7ub1cq.webp","2026-10-08T15:09:00.000Z",{"id":2733,"slug":2734,"title":2735,"excerpt":2736,"featuredImage":2737,"publishedAt":2738},"470","what-should-an-ai-agent-remember-forget-recompute-or-retrieve-again","Que devrait mémoriser, oublier, recalculer ou récupérer à nouveau un agent IA ?","Les agents à exécution longue ne devraient pas tout retenir. Cet article propose un modèle de cycle de vie pratique pour décider de ce qui a sa place dans la mémoire durable, de ce qui devrait être récupéré à nouveau, de ce qu'il est plus sûr de recalculer et de ce qui devrait expirer ou être remplacé.","\u002Fuploads\u002F2026\u002F09\u002Fwhat-should-an-ai-agent-remember-forget-recompute-or-retrieve-again-1790351131087-iehz28.webp","2026-09-25T09:43:00.000Z","fallback",[],[]]