[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portal-settings:stajic:it":3,"public-menus:all":38,"post:vector-databases-embeddings-and-reranking-three-different-parts-of-retrieval:it":205,"related:post:vector-databases-embeddings-and-reranking-three-different-parts-of-retrieval:it:1":2647},{"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","it","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":2646},{"id":207,"title":208,"slug":209,"content":210,"contentJson":211,"excerpt":1251,"featuredImage":1252,"featuredImageAlt":1253,"featuredImageCaption":10,"featuredImageTitle":10,"featuredImageCopyright":10,"featuredImageAuthor":10,"featuredImageSourceUrl":10,"featuredImageLicense":10,"featuredImageIsAiGenerated":43,"status":1254,"publishedAt":1255,"createdAt":1256,"updatedAt":1257,"seoLocalePaths":1258,"categories":1267,"author":1280,"translations":1285},"487","Database vettoriali, embedding e reranking: tre parti diverse del recupero","vector-databases-embeddings-and-reranking-three-different-parts-of-retrieval","\u003Cp>Gli embedding, i database vettoriali e i reranker sono tre parti diverse del retrieval. Un modello di embedding converte testo o altri dati in rappresentazioni numeriche; un database vettoriale o un indice vettoriale memorizza e cerca quelle rappresentazioni per recuperare elementi candidati; un reranker prende un insieme più piccolo di candidati e lo riordina usando un modello di rilevanza o un metodo di scoring più costoso. Spesso compaiono insieme nel RAG, ma nessuno di essi è la stessa cosa del RAG, e nessuno è obbligatorio in ogni sistema di retrieval.\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\">Risposta diretta\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">\u003Cstrong>Gli embedding rappresentano. La ricerca vettoriale recupera. Il reranking affina.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Un modello mentale utile è:\u003Cbr>\u003Cstrong>contenuto → embedding → recupero dei candidati → reranking → contesto selezionato → modello\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>I confini contano perché ogni livello fallisce in modo diverso. Embedding scadenti distorcono la similarità semantica. Un indice di retrieval debole perde candidati utili. Un reranker può riordinare i candidati, ma non può recuperare un documento rilevante che non è mai stato recuperato.\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\">Non collassare lo stack di retrieval\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Un database vettoriale non è un modello di embedding. Un embedding non è un risultato di ricerca. Un reranker non è un database vettoriale. Il RAG è il pattern più ampio che può usare uno qualsiasi di questi componenti per recuperare informazioni esterne prima della generazione.\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\">Nota sulle fonti attuali — 8 ottobre 2026\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">L&#39;architettura di base è stabile anche se i prodotti si evolvono rapidamente. L&#39;attuale documentazione di Qdrant separa vettori, metadati del payload, collezioni e indici vettoriali; l&#39;attuale guida di Elastic tratta il reranking semantico come un&#39;operazione di fase successiva su un piccolo insieme di candidati; anche l&#39;attuale documentazione di Cohere descrive il reranking come un miglioramento di seconda fase rispetto alla ricerca lessicale o semantica.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Cnav class=\"editorjs-toc\" data-editorjs-toc=\"true\" aria-label=\"Contenuti\">\u003Cstrong class=\"editorjs-toc__title\">Contenuti\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\">Cosa significa davvero\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-10\" class=\"editorjs-toc__link\">L&#39;esempio più semplice\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-15\" class=\"editorjs-toc__link\">Dove si ferma l&#39;esempio semplice\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-20\" class=\"editorjs-toc__link\">Embedding: rappresentazione, non recupero\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\">Il modello di embedding definisce lo spazio di rappresentazione\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-27\" class=\"editorjs-toc__link\">Le rappresentazioni dense e sparse sono diverse\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-30\" class=\"editorjs-toc__link\">Le funzioni di similarità fanno parte del contratto di rappresentazione\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-34\" class=\"editorjs-toc__link\">Database vettoriali e indici: recupero dei candidati\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 ricerca approssimata del nearest-neighbor scambia esattezza con efficienza\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-42\" class=\"editorjs-toc__link\">Il filtraggio dei metadati appartiene prima o durante il recupero dei candidati\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-45\" class=\"editorjs-toc__link\">Un database vettoriale è opzionale\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-48\" class=\"editorjs-toc__link\">Reranking: raffinamento della rilevanza di secondo stadio\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\">Il recupero con bi-encoder e il reranking con cross-encoder risolvono problemi di costo diversi\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-54\" class=\"editorjs-toc__link\">Un reranker non può recuperare ciò che il recupero ha mancato\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-58\" class=\"editorjs-toc__link\">Il recupero ibrido è una scelta progettuale separata\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 non è obsoleto perché esistono gli embedding\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-65\" class=\"editorjs-toc__link\">Il chunking cambia ciò che embedding e reranker possono vedere\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-68\" class=\"editorjs-toc__link\">Non confrontare i punteggi di recupero come se fossero probabilità universali\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-71\" class=\"editorjs-toc__link\">Valutare separatamente le fasi di recupero\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-74\" class=\"editorjs-toc__link\">Quale livello ha effettivamente fallito?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-76\" class=\"editorjs-toc__link\">Rilevanza e Fonte di Verità sono diverse\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-80\" class=\"editorjs-toc__link\">Evidenza dell&#39;implementazione originale\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\">Source of Truth Research Engine: il retrieval lessicale e semantico sono separati\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-85\" class=\"editorjs-toc__link\">Aaasaasa AI Client: Qdrant è un componente infrastrutturale vettoriale\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-91\" class=\"editorjs-toc__link\">Quando hai bisogno di ciascun componente?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-93\" class=\"editorjs-toc__link\">Una sequenza pratica di progettazione del recupero\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-95\" class=\"editorjs-toc__link\">Idee sbagliate comuni\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-97\" class=\"editorjs-toc__link\">Casi limite e limitazioni\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-103\" class=\"editorjs-toc__link\">Cosa cambierebbe questa risposta?\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-107\" class=\"editorjs-toc__link\">Conoscenza canonica correlata\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-113\" class=\"editorjs-toc__link\">Domande frequenti\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-115\" class=\"editorjs-toc__link\">Glossario\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-117\" class=\"editorjs-toc__link\">Conclusione\u003C\u002Fa>\u003C\u002Fli>\u003Cli class=\"editorjs-toc__item\">\u003Ca href=\"#section-121\" class=\"editorjs-toc__link\">Fonti primarie ed evidenze di implementazione\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Fol>\u003C\u002Fnav>\n\u003Ch2 id=\"section-6\">Cosa significa davvero\u003C\u002Fh2>\n\u003Cp>I sistemi di ricerca hanno due obiettivi in competizione: trovare abbastanza materiale potenzialmente rilevante e mettere il materiale migliore vicino alla cima. Il recupero rapido di prima fase di solito ottimizza la generazione dei candidati. Un modello più forte di seconda fase può poi spendere più calcolo per distinguere i migliori candidati.\u003C\u002Fp>\n\u003Cp>Gli embedding, gli indici vettoriali e i reranker occupano posizioni diverse in quel processo. Trattarli come un'unica funzionalità nasconde scelte di progettazione importanti su recall, precisione, latenza, archiviazione, filtraggio dei metadati e costo del modello.\u003C\u002Fp>\n\u003Cp>La distinzione previene anche un errore comune nel RAG: presumere che memorizzare gli embedding dei documenti in un database vettoriale crei automaticamente un retrieval di alta qualità. La qualità del retrieval dipende dal modello di embedding, dal chunking, dai metadati, dalla costruzione della query, dalla configurazione dell'indice, dal numero di candidati, dal retrieval ibrido, dal reranking e dall'autorevolezza delle fonti sottostanti.\u003C\u002Fp>\n\u003Ch2 id=\"section-10\">L'esempio più semplice\u003C\u002Fh2>\n\u003Cp>Supponiamo che una base di conoscenza contenga 100.000 chunk di documenti. Un utente chiede: “Come revoco un token API?”\u003C\u002Fp>\n\u003Cp>Innanzitutto, un modello di embedding può codificare la query in un vettore. I chunk dei documenti possono già avere i propri embedding memorizzati. Una ricerca vettoriale confronta quindi il vettore della query con i vettori dei documenti indicizzati e restituisce, per esempio, 30 candidati probabili.\u003C\u002Fp>\n\u003Cp>Quei 30 candidati possono poi essere passati a un reranker. Il reranker confronta la query più direttamente con ciascun candidato e produce un nuovo ordinamento di rilevanza. L'applicazione potrebbe mantenere i migliori cinque per il contesto del modello.\u003C\u002Fp>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Una pipeline di base di retrieval semantico a due fasi\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. Incorpora i documenti\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Converti ogni chunk ricercabile in una rappresentazione numerica, di solito al momento dell'ingestione.\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. Memorizza\u002Findicizza i vettori\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Associa i vettori a ID dei documenti e metadati in un indice vettoriale o database ricercabile.\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. Incorpora la query\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Codifica la query dell'utente usando il modello di embedding compatibile e la configurazione della query.\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. Recupera i candidati\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Esegui una ricerca di similarità vettoriale, spesso con filtri sui metadati, per produrre un insieme più ampio di top-k candidati.\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. Riordina i candidati\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Applica un modello di rilevanza più forte alla query e al piccolo insieme di candidati.\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. Seleziona il contesto\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Mantieni i passaggi più utili per la risposta a valle, il passo dell'agente o il risultato di ricerca.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-15\">Dove si ferma l'esempio semplice\u003C\u002Fh2>\n\u003Cp>I sistemi di retrieval reali non devono necessariamente usare embedding densi. La ricerca per parole chiave come BM25 può essere il retriever di prima fase. Anche il retrieval sparso appreso, i filtri SQL, la traversata di grafi o le API applicative possono generare candidati.\u003C\u002Fp>\n\u003Cp>Un reranker inoltre non si preoccupa che i candidati provengano da un database vettoriale. Può riordinare risultati BM25, risultati ibridi, documenti selezionati manualmente o candidati provenienti da più retriever.\u003C\u002Fp>\n\u003Cp>Allo stesso modo, gli embedding non richiedono un database vettoriale specializzato. Piccoli dataset possono essere confrontati in memoria o con database generici ed estensioni vettoriali. I sistemi vettoriali specializzati diventano utili quando indicizzazione, ricerca approssimata del vicino più prossimo, filtraggio, scala, comportamento di aggiornamento o requisiti operativi li giustificano.\u003C\u002Fp>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Tre diversi componenti di recupero\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\">Database vettoriale \u002F indice\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\">Compito 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\">Input tipico\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\">Output tipico\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\">Profilo di costo\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\">Errore tipico\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\">Embedding: rappresentazione, non recupero\u003C\u002Fh2>\n\u003Cp>Un embedding è una rappresentazione numerica prodotta da un modello. Per il recupero semantico, i testi con significato correlato sono destinati a occupare posizioni utili in uno spazio vettoriale in modo che una funzione di similarità o distanza possa confrontarli.\u003C\u002Fp>\n\u003Cp>Sentence-BERT è stato un passo influente nel rendere pratica la similarità semantica a livello di frase con rappresentazioni in stile bi-encoder che possono essere calcolate indipendentemente e confrontate in modo efficiente. L'idea generale rimane centrale nel recupero denso moderno: precalcolare le rappresentazioni dei documenti, calcolare la rappresentazione della query al momento della ricerca, quindi confrontarle.\u003C\u002Fp>\n\u003Cp>L'embedding stesso non cerca in un corpus. Sono dati prodotti da un modello di embedding. Il recupero inizia quando il sistema confronta la rappresentazione della query con i candidati memorizzati.\u003C\u002Fp>\n\u003Ch3 id=\"section-24\">Il modello di embedding definisce lo spazio di rappresentazione\u003C\u002Fh3>\n\u003Cp>I vettori dei documenti e delle query devono essere compatibili con il modello e la configurazione utilizzati per crearli. Sostituire un modello di embedding può cambiare dimensionalità, comportamento di similarità, copertura linguistica e prestazioni di dominio.\u003C\u002Fp>\n\u003Cp>Ecco perché una migrazione del modello di embedding non è semplicemente un cambio di nome API. I documenti esistenti potrebbero dover essere re-embedded e l'indice ricostruito o versionato.\u003C\u002Fp>\n\u003Ch3 id=\"section-27\">Le rappresentazioni dense e sparse sono diverse\u003C\u002Fh3>\n\u003Cp>Gli embedding densi di solito contengono molte dimensioni non nulle e sono comunemente usati per la similarità semantica. Le rappresentazioni sparse contengono molti zeri e possono preservare una struttura più forte simile a token o termini.\u003C\u002Fp>\n\u003Cp>Entrambi possono supportare il recupero semantico, e i sistemi di ricerca moderni possono combinare segnali densi, sparsi e lessicali. La \"ricerca vettoriale\" quindi non significa sempre una pipeline di similarità coseno densa.\u003C\u002Fp>\n\u003Ch3 id=\"section-30\">Le funzioni di similarità fanno parte del contratto di rappresentazione\u003C\u002Fh3>\n\u003Cp>Similarità coseno, prodotto scalare e distanza euclidea non significano la stessa cosa. La metrica corretta dipende da come il modello di embedding è stato addestrato e normalizzato.\u003C\u002Fp>\n\u003Cp>La documentazione attuale di Qdrant, ad esempio, richiede una metrica di distanza come parte della configurazione vettoriale e documenta scelte in stile coseno, prodotto scalare ed euclideo. La regola architetturale importante è trattare la metrica come parte del contratto di embedding\u002Findice piuttosto che sceglierne una arbitrariamente.\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à degli embedding non è un supporto fattuale\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Due passaggi possono essere semanticamente vicini mentre uno è obsoleto, non autorizzato o errato. Gli embedding stimano la similarità rappresentazionale; non determinano l&#39;autorità della Fonte di Verità, l&#39;aggiornamento o la validità probatoria.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-34\">Database vettoriali e indici: recupero dei candidati\u003C\u002Fh2>\n\u003Cp>Un database vettoriale o un sistema di ricerca con capacità vettoriale organizza le rappresentazioni vettoriali in modo che l'applicazione possa recuperare efficientemente i candidati vicini. I sistemi pratici di solito associano i vettori a ID e metadati di payload come fonte, lingua, tenant, tipo di documento, timestamp o ambito di accesso.\u003C\u002Fp>\n\u003Cp>Qdrant, ad esempio, organizza i dati in collezioni di punti dove un punto contiene un vettore e metadati di payload opzionali. La sua documentazione descrive la ricerca di similarità basata su HNSW e il filtraggio dei metadati come capacità separate del livello di recupero.\u003C\u002Fp>\n\u003Cp>Questa distinzione è importante: l'indice vettoriale risponde a un problema di nearest-neighbor, mentre i filtri sul payload impongono vincoli strutturali come tenant, classe di documento o lingua.\u003C\u002Fp>\n\u003Ch3 id=\"section-38\">La ricerca approssimata del nearest-neighbor scambia esattezza con efficienza\u003C\u002Fh3>\n\u003Cp>Confrontare un vettore di query con ogni vettore può essere pratico per piccole collezioni ma costoso su larga scala. Gli indici approssimati di nearest-neighbor come HNSW riducono il costo di ricerca navigando una struttura di indice invece di scansionare esaustivamente ogni vettore.\u003C\u002Fp>\n\u003Cp>La ricerca approssimata introduce un compromesso tra recall e latenza. Una ricerca più veloce può mancare candidati che la ricerca esatta restituirebbe. I parametri dell'indice influenzano quindi la qualità del recupero, non solo le prestazioni dell'infrastruttura.\u003C\u002Fp>\n\u003Cp>Qdrant espone sia parametri relativi a HNSW sia un'opzione di ricerca esatta, illustrando che l'archiviazione vettoriale e la politica di recupero approssimato sono decisioni separate.\u003C\u002Fp>\n\u003Ch3 id=\"section-42\">Il filtraggio dei metadati appartiene prima o durante il recupero dei candidati\u003C\u002Fh3>\n\u003Cp>Se l'utente può accedere solo al tenant A, recuperare chunk semanticamente simili dal tenant B e tentare di rimuoverli in seguito è il confine di sicurezza sbagliato. I filtri di autorizzazione e di eleggibilità rigida dovrebbero vincolare lo spazio dei candidati prima che tali candidati possano influenzare l'elaborazione a valle.\u003C\u002Fp>\n\u003Cp>Lo stesso principio si applica a locale, stato del documento, classe di origine, data, versione del prodotto e altri vincoli deterministici. La similarità dovrebbe classificare i candidati eleggibili; non dovrebbe prevalere sull'eleggibilità.\u003C\u002Fp>\n\u003Ch3 id=\"section-45\">Un database vettoriale è opzionale\u003C\u002Fh3>\n\u003Cp>Per un piccolo corpus, il confronto brute-force del coseno può essere semplice e sufficiente. Anche un database relazionale con supporto vettoriale può essere adeguato. Un database vettoriale dedicato diventa prezioso quando il suo indicizzazione, filtraggio, archiviazione distribuita, comportamento di aggiornamento o caratteristiche operative risolvono un requisito reale.\u003C\u002Fp>\n\u003Cp>Scegliere un database vettoriale perché \"RAG ne ha bisogno\" inverte il processo architetturale. Inizia dai requisiti di recupero e dalla scala, poi seleziona la tecnologia di archiviazione\u002Findice.\u003C\u002Fp>\n\u003Ch2 id=\"section-48\">Reranking: raffinamento della rilevanza di secondo stadio\u003C\u002Fh2>\n\u003Cp>Un reranker riceve una query e un insieme più piccolo di candidati già recuperati, poi assegna punteggi di rilevanza più forti o un nuovo ordinamento. Normalmente è più costoso dal punto di vista computazionale rispetto al recupero di primo stadio, motivo per cui viene applicato dopo la generazione dei candidati anziché all'intero corpus.\u003C\u002Fp>\n\u003Cp>L'attuale guida di Elastic descrive il reranking semantico come una tecnica di stadio finale su un piccolo insieme top-k e osserva che può raffinare il recupero lessicale, semantico o ibrido. Cohere documenta la stessa architettura: ricerca lessicale o semantica di primo stadio seguita da uno stadio di reranking.\u003C\u002Fp>\n\u003Cp>Un'implementazione comune utilizza un modello simile a un cross-encoder che esamina insieme la query e ciascun candidato. Questa interazione più ricca può distinguere la rilevanza con maggiore precisione rispetto alla similarità di embedding indipendente, ma è molto più costosa su scala di corpus.\u003C\u002Fp>\n\u003Ch3 id=\"section-52\">Il recupero con bi-encoder e il reranking con cross-encoder risolvono problemi di costo diversi\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\">Proprietà\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Recupero con bi-encoder \u002F embedding\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Reranking in stile cross-encoder\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Codifica\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Query e documenti rappresentati indipendentemente\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Query e candidato elaborati congiuntamente\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Calcolo sui documenti\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Può essere precalcolato all'ingestione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Normalmente ricalcolato per ogni coppia query-candidato\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ricerca su scala di corpus\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Adatto con indici vettoriali\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Di solito troppo costoso sull'intero corpus\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ruolo tipico\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Generazione di candidati ad alto recall\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ordinamento ad alta precisione di un piccolo insieme di candidati\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Compromesso principale\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Veloce e scalabile ma l'interazione di rilevanza è compressa in vettori\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Giudizio di rilevanza più ricco ma latenza\u002Fcosto più elevati\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch3 id=\"section-54\">Un reranker non può recuperare ciò che il recupero ha mancato\u003C\u002Fh3>\n\u003Cp>Se il documento rilevante è assente dall'insieme dei candidati, il reranking non ha nulla da promuovere. Questo è il motivo centrale per valutare separatamente il recupero e il reranking.\u003C\u002Fp>\n\u003Cp>Una pipeline può avere un'eccellente precisione del reranker e fallire comunque perché il richiamo della prima fase è scarso. Aumentare la qualità del reranker non riparerà la copertura mancante delle fonti, un chunking errato, filtri restrittivi o un retriever di candidati debole.\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\">Obiettivo di recupero utile\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">Prima fase: \u003Cstrong>non perdere i candidati utili.\u003C\u002Fstrong>\u003Cbr>Seconda fase: \u003Cstrong>mettere i migliori candidati per primi.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Questa non è una regola matematica universale, ma è un modello ingegneristico utile per il recupero a due fasi.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-58\">Il recupero ibrido è una scelta progettuale separata\u003C\u002Fh2>\n\u003Cp>Il recupero semantico denso è forte quando query e documento usano parole diverse ma esprimono un significato correlato. Il recupero lessicale è forte quando contano termini esatti, identificatori, nomi, codici o frasi rare.\u003C\u002Fp>\n\u003Cp>Il recupero ibrido combina più segnali candidati, spesso BM25 lessicale e similarità vettoriale, poi unisce le classifiche usando un metodo come la Reciprocal Rank Fusion o una combinazione ponderata dei punteggi.\u003C\u002Fp>\n\u003Cp>Il reranking può quindi operare sull'insieme fuso dei candidati. Il recupero ibrido e il reranking sono pertanto fasi complementari ma distinte.\u003C\u002Fp>\n\u003Ch3 id=\"section-62\">BM25 non è obsoleto perché esistono gli embedding\u003C\u002Fh3>\n\u003Cp>La ricerca per parole chiave può superare il recupero denso per identificatori esatti, numeri di versione, messaggi di errore, codici prodotto e vocabolario specializzato. SQLite FTS5, ad esempio, include una funzione di ranking BM25 per la ricerca full-text.\u003C\u002Fp>\n\u003Cp>Un'architettura di recupero solida può usare il recupero lessicale come unica prima fase, il recupero vettoriale come unica prima fase, o combinare entrambi a seconda del corpus e della distribuzione delle query.\u003C\u002Fp>\n\u003Ch2 id=\"section-65\">Il chunking cambia ciò che embedding e reranker possono vedere\u003C\u002Fh2>\n\u003Cp>Se un documento viene suddiviso male, nessun componente di recupero successivo può ricostruire completamente l'unità semantica mancante. Un chunk che separa una condizione dalla sua eccezione può generare embedding fuorvianti e può anche essere riordinato in modo errato perché il testo candidato è incompleto.\u003C\u002Fp>\n\u003Cp>Dimensione dei chunk, sovrapposizione, confini strutturali e metadati influenzano quindi sia il richiamo dei candidati sia il giudizio del reranker. La valutazione del recupero dovrebbe testare l'intera pipeline dall'ingestione al ranking, non solo il modello di embedding.\u003C\u002Fp>\n\u003Ch2 id=\"section-68\">Non confrontare i punteggi di recupero come se fossero probabilità universali\u003C\u002Fh2>\n\u003Cp>Similarità coseno, punteggi BM25, punteggi di vettori sparsi, ranghi RRF e punteggi del reranker hanno significati diversi. Un punteggio di 0,82 di un modello di embedding non è automaticamente confrontabile con 0,82 di un altro modello o con un punteggio di un reranker.\u003C\u002Fp>\n\u003Cp>Le soglie dovrebbero essere calibrate per il modello, il corpus e il compito effettivi. Le attuali linee guida di Elastic osservano anche che i punteggi di similarità degli embedding possono dipendere dalla query, il che rende rischiosi i tagli universali.\u003C\u002Fp>\n\u003Ch2 id=\"section-71\">Valutare separatamente le fasi di recupero\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\">Livello\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Domanda utile\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Esempio di metrica o test\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Copertura delle fonti\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il corpus contiene le informazioni necessarie?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Audit di copertura \u002F insieme di fonti con risposte note\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Chunking\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'evidenza necessaria è recuperabile come unità coerente?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Revisione del supporto a livello di chunk\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recupero di prima fase\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'elemento rilevante entra nell'insieme dei candidati?\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\">Ranking\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Quanto in alto appare l'evidenza rilevante?\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\">Il punteggio di seconda fase migliora l'ordinamento?\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\">Selezione del contesto\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">I passaggi finali selezionati contengono un supporto sufficiente?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Rilevanza \u002F copertura del contesto\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Fase di risposta\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il modello usa correttamente l'evidenza selezionata?\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Valutazione di fedeltà \u002F affermazione-evidenza\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Questa separazione è operativamente importante. Se Recall@50 è scarso, il reranker non è il primo componente da correggere. Se Recall@50 è forte ma il miglior passaggio rimane al rango 38, il reranking o la fusione del ranking diventa un obiettivo plausibile.\u003C\u002Fp>\n\u003Ch2 id=\"section-74\">Quale livello ha effettivamente fallito?\u003C\u002Fh2>\n\u003Csection class=\"editorjs-comparison my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Sintomi e probabile livello di retrieval\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\">Sintomo osservato\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\">Livello probabile\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\">Prima diagnostica\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\">Il documento rilevante non appare mai\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\">Il documento rilevante appare troppo in basso\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\">Semanticamente buono ma risultato proibito\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\">Risultato rilevante ma obsoleto\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\">Risultato corretto recuperato ma omesso dal 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\">Rilevanza e Fonte di Verità sono diverse\u003C\u002Fh2>\n\u003Cp>Un reranker può far sembrare estremamente rilevante un documento obsoleto. Un indice vettoriale può recuperare un riassunto secondario che è semanticamente più vicino della fonte primaria. La qualità del retrieval quindi non può sostituire le regole di autorità.\u003C\u002Fp>\n\u003Cp>Dove l'autorità della fonte è importante, i filtri sui metadati, le classi di fonte, le regole di versione e la provenienza dovrebbero vincolare il retrieval prima che il risultato diventi contesto del modello.\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\">Il reranking non può rendere autorevole una fonte non autorevole\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">La rilevanza risponde alla domanda se un candidato si adatta alla query. L&#39;architettura della Fonte di Verità risponde alla domanda se quel candidato è autorizzato a stabilire l&#39;affermazione.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-80\">Evidenza dell'implementazione originale\u003C\u002Fh2>\n\u003Ch3 id=\"section-81\">Source of Truth Research Engine: il retrieval lessicale e semantico sono separati\u003C\u002Fh3>\n\u003Cp>Il Source of Truth Research Engine contiene un percorso di retrieval lessicale locale che utilizza SQLite FTS5\u002FBM25 e un percorso separato opzionale di retrieval semantico che utilizza embedding generati localmente.\u003C\u002Fp>\n\u003Cp>La sua implementazione di ricerca semantica calcola un vettore di query e lo confronta con i vettori dei chunk memorizzati utilizzando la similarità coseno. Il progetto tratta deliberatamente la similarità semantica come un segnale di scoperta piuttosto che come prova: un candidato deve comunque essere ricondotto a una fonte concreta e a un locator prima di supportare un'affermazione.\u003C\u002Fp>\n\u003Cp>Questa è un'evidenza di implementazione utile per R01 perché lo stesso corpus può supportare il ranking lessicale e la similarità vettoriale senza confondere nessuno dei due meccanismi con l'autorità probatoria.\u003C\u002Fp>\n\u003Ch3 id=\"section-85\">Aaasaasa AI Client: Qdrant è un componente infrastrutturale vettoriale\u003C\u002Fh3>\n\u003Cp>Aaasaasa AI Client include Qdrant\u002Finfrastruttura vettoriale come risorsa locale separata. L'architettura Electron espone i servizi Qdrant dal lato affidabile del processo principale invece di trattare la ricerca vettoriale come parte del modello stesso.\u003C\u002Fp>\n\u003Cp>Il repository contiene un adattatore client Qdrant, la configurazione del servizio Qdrant e l'infrastruttura Qdrant basata su Docker. Questo dimostra la separazione architetturale tra esecuzione del provider\u002Fmodello AI e archiviazione\u002Fricerca vettoriale.\u003C\u002Fp>\n\u003Cp>L'esistenza del supporto Qdrant non dovrebbe essere sopravvalutata come una pipeline RAG di produzione completa. L'evidenza qui è più ristretta: l'infrastruttura vettoriale è implementata come un proprio confine di componente.\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\">Evidenza dell'implementazione\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Cosa dimostra\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">SQLite FTS5\u002FBM25 nel Source of Truth Research Engine\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il retrieval lessicale può esistere indipendentemente dagli embedding.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Embedding Ollama locali\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La generazione della rappresentazione è una fase a sé stante.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vettori semantici memorizzati + confronto coseno\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il retrieval semantico consuma gli embedding dopo che sono stati prodotti.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Supporto Qdrant in Aaasaasa AI Client\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'archiviazione\u002Fricerca vettoriale è una capacità infrastrutturale separata dal provider del modello.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Regole di evidenza\u002Fprovenienza nel Source of Truth Research Engine\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La similarità recuperata non equivale ad autorità o prova.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Nessun reranker personalizzato dichiarato in queste implementazioni\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il reranking è spiegato come una fase architetturale, non falsamente dichiarato come evidenza già implementata.\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\">Confine dell&#39;evidenza\u003C\u002Fstrong>\u003Cdiv class=\"text-gray-700 dark:text-gray-200\">L&#39;attuale evidenza dell&#39;implementazione conferma il retrieval lessicale, gli embedding, l&#39;infrastruttura di ricerca vettoriale e il retrieval consapevole della provenienza. Questo articolo \u003Cstrong>non\u003C\u002Fstrong> afferma che un servizio di reranking cross-encoder di produzione sia già implementato in questi progetti.\u003C\u002Fdiv>\u003C\u002Faside>\n\u003Ch2 id=\"section-91\">Quando hai bisogno di ciascun componente?\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\">Esigenza\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Componente probabile\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Somiglianza semantica tra formulazioni diverse\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Modello di embedding + ricerca per similarità vettoriale\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Ricerca efficiente su un grande corpus vettoriale\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Indice\u002Fdatabase vettoriale o motore di ricerca con capacità vettoriali\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Identificatori esatti, codici di errore o termini rari\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recupero lessicale\u002Ffull-text come BM25\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Sia terminologia esatta che significato semantico\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Recupero ibrido lessicale + semantico\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">L'insieme dei candidati è buono ma l'ordinamento è debole\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\">Gli elementi rilevanti sono assenti dall'insieme dei candidati\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Migliorare copertura delle fonti, chunking, retriever, filtri o numero di candidati prima del reranking\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Vincoli rigidi di tenant\u002Ffonte\u002Fversione\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Filtraggio deterministico di metadati\u002Fautorizzazione\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Corpus piccolo\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Potenzialmente semplice similarità brute-force o database generico invece di un vector DB dedicato\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-93\">Una sequenza pratica di progettazione del recupero\u003C\u002Fh2>\n\u003Csection class=\"editorjs-process my-6\">\u003Ch3 class=\"mb-3 text-lg font-semibold\">Progettare il recupero dai requisiti, non dai nomi dei prodotti\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. Definire i tipi di query\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Identificare domande semantiche, ricerche esatte, identificatori, letture dello stato corrente e pattern specifici del dominio.\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. Definire le fonti ammissibili\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Applicare vincoli di tenant, autorizzazione, locale, versione, classe di fonte e freschezza.\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. Stabilire una baseline lessicale\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Misurare se il semplice recupero full-text\u002FBM25 risolve già gran parte del carico di lavoro.\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. Aggiungere embedding dove serve recall semantico\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Scegliere e valutare un modello di embedding su query rappresentative del dominio.\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. Scegliere archiviazione\u002Findicizzazione vettoriale in base alla scala\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Usare brute force, supporto vettoriale del database o un motore vettoriale dedicato secondo i requisiti.\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. Valutare il recall del primo stadio\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Confermare che le evidenze rilevanti entrano in un insieme di candidati sufficientemente ampio.\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. Aggiungere recupero ibrido se i segnali sono complementari\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Fondere ranking lessicali e semantici quando entrambi migliorano materialmente la generazione dei candidati.\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. Aggiungere reranking se l'ordinamento resta il collo di bottiglia\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Applicare il modello più forte solo all'insieme dei candidati dove il suo costo è giustificato.\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. Ottimizzare la selezione finale del contesto\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Controllare ridondanza, budget di contesto, autorità, diversità e copertura delle evidenze prima della generazione.\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. Valutare end-to-end\u003C\u002Fdiv>\u003Cdiv class=\"mt-1 text-sm text-gray-600 dark:text-gray-300\">Misurare separatamente qualità di recupero, contesto e risposta così da localizzare i fallimenti.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-95\">Idee sbagliate comuni\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\">Idea sbagliata\u003C\u002Fth>\u003Cth class=\"border border-gray-300 px-4 py-2 text-left font-semibold\">Correzione\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Un embedding è un database vettoriale.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Un embedding è una rappresentazione; il database\u002Findice memorizza e cerca rappresentazioni.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Un database vettoriale crea significato semantico.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Il modello di embedding crea la rappresentazione; il sistema vettoriale la indicizza e la confronta.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“RAG richiede un database vettoriale.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">RAG richiede il recupero, non una specifica tecnologia di recupero.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Il reranking è uguale alla ricerca vettoriale.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La ricerca vettoriale genera candidati; il reranking riordina un insieme di candidati.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“I reranker risolvono un recall scarso.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Non possono promuovere un documento che non è mai stato recuperato.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“La ricerca densa sostituisce BM25.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">La ricerca lessicale resta preziosa per termini esatti, identificatori e vocabolario specializzato.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Maggiore similarità significa maggiore autorevolezza.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Similarità e autorevolezza della fonte sono dimensioni diverse.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Più top-k migliora sempre il RAG.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">Insiemi di candidati più grandi possono migliorare il recall ma aggiungono latenza, rumore e onere di selezione del contesto.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Una soglia di punteggio funziona ovunque.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">I punteggi dipendono da modello, query, corpus e metodo di recupero e devono essere calibrati.\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd class=\"border border-gray-300 px-4 py-2\">“Un vector DB dedicato è sempre più avanzato.”\u003C\u002Ftd>\u003Ctd class=\"border border-gray-300 px-4 py-2\">È giustificato solo quando le sue capacità operative e di recupero corrispondono ai requisiti.\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"section-97\">Casi limite e limitazioni\u003C\u002Fh2>\n\u003Cp>Alcune applicazioni non necessitano di ricerca semantica. Una ricerca esatta nel database o SQL strutturato può essere più corretta, più veloce e più facile da verificare rispetto al recupero tramite embedding.\u003C\u002Fp>\n\u003Cp>Alcuni corpus sono così piccoli che una scansione vettoriale completa è accettabile. L'indicizzazione approssimata aggiunge complessità senza benefici significativi.\u003C\u002Fp>\n\u003Cp>Alcune query richiedono un recall elevato prima di qualsiasi ottimizzazione della precisione. Scoperta legale, ricerca e revisione di conformità possono preferire un recupero ampio dei candidati seguito da filtraggio trasparente e revisione umana.\u003C\u002Fp>\n\u003Cp>Il recupero multilingue e specifico del dominio può comportarsi molto diversamente tra modelli di embedding. Le affermazioni di benchmark da dataset pubblici non dovrebbero essere considerate prova per un corpus privato.\u003C\u002Fp>\n\u003Cp>La latenza del reranking cresce con il numero e la lunghezza dei candidati. La dimensione dei candidati dovrebbe quindi essere ottimizzata come variabile di accuratezza\u002Fcosto\u002Flatenza invece di essere copiata da un tutorial.\u003C\u002Fp>\n\u003Ch2 id=\"section-103\">Cosa cambierebbe questa risposta?\u003C\u002Fh2>\n\u003Cp>I confini dei componenti non cambierebbero se un fornitore impacchettasse generazione di embedding, indicizzazione vettoriale e reranking dietro un'unica API. Il prodotto può nascondere le fasi, ma esse restano concettualmente responsabilità diverse con modalità di fallimento diverse.\u003C\u002Fp>\n\u003Cp>Futuri modelli di embedding o recupero potrebbero ridurre la necessità di reranking separato in alcuni carichi di lavoro, mentre metodi più forti di late-interaction o sparse appresi possono sfumare le tradizionali categorie dense\u002Flessicali. L'architettura dovrebbe comunque chiedersi quale fase produce rappresentazioni, quale fase genera candidati e quale fase raffina il ranking.\u003C\u002Fp>\n\u003Cp>Il design migliore cambia anche con dimensione del corpus, mix di query, lingua, terminologia di dominio, frequenza di aggiornamento, autorevolezza della fonte, budget di latenza e risultati di valutazione.\u003C\u002Fp>\n\u003Ch2 id=\"section-107\">Conoscenza canonica correlata\u003C\u002Fh2>\n\u003Cp>R01 presuppone che il concetto di base di RAG sia già compreso. RAG è il pattern più ampio in cui informazioni esterne recuperate vengono fornite a un modello; embedding, ricerca vettoriale e reranking sono componenti di recupero opzionali all'interno di quel pattern.\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fit\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\">Cos'è il RAG? La spiegazione più semplice di come funziona\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Una base in linguaggio semplice su come il retrieval porta conoscenza esterna nel contesto del modello.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Leggi le basi del RAG →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Cp>Quando il retrieval fallisce, diagnostica separatamente copertura delle fonti, retrieval, ranking, assemblaggio del contesto e generazione, invece di trattare l'intero sistema come un unico \"fallimento del RAG\".\u003C\u002Fp>\n\u003Caside class=\"editorjs-referral my-6\">\u003Ca href=\"https:\u002F\u002Fstajic.de\u002Fit\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\">Il RAG ha fallito — ma quale livello ha effettivamente fallito? Un metodo diagnostico\u003C\u002Fstrong>\u003Cp class=\"mt-2 text-sm text-gray-600 dark:text-gray-300\">Un metodo livello per livello per isolare i fallimenti di copertura delle fonti, retrieval, ranking, assemblaggio del contesto, generazione, attribuzione delle evidenze e aggiornamento.\u003C\u002Fp>\u003Cspan class=\"mt-3 inline-flex text-sm font-medium text-primary-600 dark:text-primary-400\">Leggi il metodo diagnostico del RAG →\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002Fa>\u003C\u002Faside>\n\u003Cp>L'architettura Source-of-Truth è il livello di autorità attorno al retrieval: decide quale fonte può stabilire un'affermazione, mentre gli embedding e il ranking decidono solo quali candidati appaiono rilevanti.\u003C\u002Fp>\n\u003Ch2 id=\"section-113\">Domande frequenti\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\">Embedding, database vettoriali e reranking\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\">Qual è la differenza tra embedding e un database vettoriale?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Gli embedding sono rappresentazioni numeriche prodotte da un modello. Un database vettoriale o un indice vettoriale memorizza e cerca quelle rappresentazioni insieme a ID e metadati.\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\">Cosa fa un reranker?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Un reranker prende un insieme di candidati già recuperati e riassegna un punteggio o riordina quei candidati usando un modello di rilevanza o un metodo di scoring più forte.\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\">Il RAG richiede un database vettoriale?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. Il RAG richiede il recupero di informazioni esterne. Il retrieval può usare ricerca lessicale, SQL, API, grafi, ricerca vettoriale, ricerca ibrida o combinazioni di questi.\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\">Perché non usare il reranker sull&#39;intero corpus?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">I reranker in genere eseguono un&#39;interazione query-documento più costosa, quindi di solito vengono applicati a un piccolo insieme di candidati top-k dopo un retriever di primo stadio più veloce.\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\">Il reranking può risolvere un documento mancante?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. Se il documento rilevante non è stato recuperato nell&#39;insieme dei candidati, il reranking non ha nulla da promuovere.\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à coseno è una probabilità di rilevanza?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">No. È una misura di similarità il cui significato numerico dipende dal modello di embedding e dal corpus. Non dovrebbe essere trattata come una probabilità universale di rilevanza.\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\">Dovrei usare BM25 e la ricerca vettoriale insieme?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Usa il retrieval ibrido quando la valutazione mostra che i segnali lessicali e semantici recuperano documenti rilevanti complementari. Non è automaticamente migliore per ogni 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\">Quando ho bisogno di un database vettoriale dedicato?\u003C\u002Fh4>\u003Cdiv class=\"mt-2 text-gray-600 dark:text-gray-300\">Quando indicizzazione vettoriale, filtraggio, scala, aggiornamenti, operatività distribuita o altri requisiti specifici per i vettori giustificano un sistema specializzato. Carichi di lavoro piccoli potrebbero non averne bisogno.\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fsection>\n\u003Ch2 id=\"section-115\">Glossario\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\">Termini chiave del retrieval\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\">Una rappresentazione numerica di contenuto prodotta da un modello di embedding per similarità, clustering, retrieval o attività correlate.\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\">Vettore denso\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Una rappresentazione vettoriale in cui molte dimensioni portano valori diversi da zero, comunemente usata nel retrieval semantico.\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\">Vettore sparso\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Una rappresentazione ad alta dimensionalità in cui la maggior parte delle dimensioni è zero, spesso preservando una struttura più forte simile a token o termini.\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\">Indice vettoriale\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Una struttura dati che organizza i vettori per un recupero efficiente per similarità o nearest-neighbor.\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\">Database vettoriale\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un sistema di archiviazione\u002Fricerca progettato per gestire vettori, metadati associati e carichi di lavoro di retrieval vettoriale.\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\">Ricerca approssimata del nearest-neighbor, che scambia il confronto esaustivo esatto con un retrieval più veloce su larga scala.\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, un approccio di indicizzazione approssimata del nearest-neighbor basato su grafo ampiamente usato per il retrieval vettoriale.\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\">Un metodo di ranking della rilevanza lessicale basato sull'occorrenza dei termini e sulle statistiche del corpus, ampiamente usato nella ricerca full-text.\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\">Ricerca ibrida\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Retrieval che combina risultati o punteggi da più metodi di retrieval come la ricerca lessicale e vettoriale.\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\">Reranking\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Una fase di retrieval successiva che riassegna un punteggio e riordina un insieme di candidati già generato.\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-encoder\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un'architettura che codifica query e candidato in modo indipendente, consentendo precalcolo e ricerca di similarità scalabile.\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-encoder\u003C\u002Fdt>\u003Cdd class=\"mt-1 text-gray-600 dark:text-gray-300\">Un modello che elabora congiuntamente una query e un testo candidato, spesso migliorando il giudizio di rilevanza a un costo computazionale più elevato.\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 frazione di elementi rilevanti recuperati entro i primi k candidati recuperati.\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, una metrica di ranking che premia i risultati rilevanti che appaiono più in alto in un elenco ordinato.\u003C\u002Fdd>\u003C\u002Fdiv>\u003C\u002Fdl>\u003C\u002Fsection>\n\u003Ch2 id=\"section-117\">Conclusione\u003C\u002Fh2>\n\u003Cp>Il modello di retrieval pulito è semplice: gli embedding rappresentano il significato, la ricerca vettoriale recupera i candidati e i reranker affinano l'ordinamento dei candidati.\u003C\u002Fp>\n\u003Cp>Una volta che questi confini sono espliciti, le decisioni architetturali diventano più facili da diagnosticare. I candidati mancanti indicano copertura delle fonti, chunking, embedding, filtri o retrieval di primo stadio. Un ordinamento scarso indica ranking, fusione o reranking. Le risposte finali errate possono poi essere investigate separatamente ai livelli di contesto e generazione.\u003C\u002Fp>\n\u003Cp>Il risultato più importante non è scegliere il componente di retrieval più alla moda. È costruire una pipeline di retrieval le cui fasi, confini di autorità, metriche e modalità di fallimento possano essere misurati in modo indipendente.\u003C\u002Fp>\n\u003Ch2 id=\"section-121\">Fonti primarie ed evidenze di implementazione\u003C\u002Fh2>\n\u003Cp>I riferimenti esterni di seguito documentano i meccanismi di rappresentazione, ricerca vettoriale e reranking usati in questo articolo. Le sezioni specifiche del progetto sono evidenze di implementazione originali e sono intenzionalmente più limitate rispetto ad affermazioni sulla completa maturità del RAG in produzione.\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: Sentence Embeddings using Siamese BERT-Networks\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Articolo fondamentale che dimostra embedding di frasi calcolabili in modo indipendente per una ricerca efficiente di similarità semantica.\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 — Panoramica di architettura e struttura dati\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentazione ufficiale che descrive collezioni, punti, vettori, metadati del payload e indicizzazione di similarità basata su 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 — Search\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentazione ufficiale sulla ricerca vettoriale che copre query di similarità, filtraggio, ricerca esatta versus approssimata e comportamento denso\u002Fsparso.\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 — Vector search\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentazione attuale sul retrieval vettoriale denso\u002Fsparso, combinazioni lessicali\u002Fvettoriali e pipeline di ricerca multi-stadio.\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 — Reranking semantico\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Linee guida attuali che definiscono il reranking semantico come un&#39;operazione di rilevanza di fase successiva su un insieme di candidati più piccolo.\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 — Reranking con Cohere\u003C\u002Fstrong>\u003Cp class=\"text-sm text-gray-600 dark:text-gray-400\">Documentazione attuale che mostra il reranking come un miglioramento di seconda fase rispetto al recupero di prima fase lessicale o semantico.\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\">Documentazione ufficiale di SQLite per la ricerca full-text e la funzione di ranking BM25 integrata utilizzata come evidenza di recupero lessicale.\u003C\u002Fp>\u003C\u002Fa>",{"time":212,"blocks":213,"version":1250},1791480409606,[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,1156,1161,1166,1171,1176,1181,1186,1196,1205,1214,1223,1232,1241],{"id":215,"data":216,"type":218,"tunes":219},"intro",{"text":217},"Gli embedding, i database vettoriali e i reranker sono tre parti diverse del retrieval. Un modello di embedding converte testo o altri dati in rappresentazioni numeriche; un database vettoriale o un indice vettoriale memorizza e cerca quelle rappresentazioni per recuperare elementi candidati; un reranker prende un insieme più piccolo di candidati e lo riordina usando un modello di rilevanza o un metodo di scoring più costoso. Spesso compaiono insieme nel RAG, ma nessuno di essi è la stessa cosa del RAG, e nessuno è obbligatorio in ogni sistema di retrieval.","paragraph",{},{"id":221,"data":222,"type":226,"tunes":227},"direct",{"body":223,"title":224,"variant":225},"\u003Cstrong>Gli embedding rappresentano. La ricerca vettoriale recupera. Il reranking affina.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Un modello mentale utile è:\u003Cbr>\u003Cstrong>contenuto → embedding → recupero dei candidati → reranking → contesto selezionato → modello\u003C\u002Fstrong>.\u003Cbr>\u003Cbr>I confini contano perché ogni livello fallisce in modo diverso. Embedding scadenti distorcono la similarità semantica. Un indice di retrieval debole perde candidati utili. Un reranker può riordinare i candidati, ma non può recuperare un documento rilevante che non è mai stato recuperato.","Risposta diretta","info","callout",{},{"id":229,"data":230,"type":226,"tunes":234},"boundary",{"body":231,"title":232,"variant":233},"Un database vettoriale non è un modello di embedding. Un embedding non è un risultato di ricerca. Un reranker non è un database vettoriale. Il RAG è il pattern più ampio che può usare uno qualsiasi di questi componenti per recuperare informazioni esterne prima della generazione.","Non collassare lo stack di retrieval","warning",{},{"id":236,"data":237,"type":226,"tunes":241},"current",{"body":238,"title":239,"variant":240},"L'architettura di base è stabile anche se i prodotti si evolvono rapidamente. L'attuale documentazione di Qdrant separa vettori, metadati del payload, collezioni e indici vettoriali; l'attuale guida di Elastic tratta il reranking semantico come un'operazione di fase successiva su un piccolo insieme di candidati; anche l'attuale documentazione di Cohere descrive il reranking come un miglioramento di seconda fase rispetto alla ricerca lessicale o semantica.","Nota sulle fonti attuali — 8 ottobre 2026","note",{},{"id":243,"data":244,"type":248,"tunes":249},"toc",{"title":245,"maxLevel":246,"minLevel":247},"Contenuti",3,2,"tableOfContents",{},{"id":251,"data":252,"type":42,"tunes":254},"h-meaning",{"text":253,"level":247},"Cosa significa davvero",{},{"id":256,"data":257,"type":218,"tunes":259},"p-meaning-1",{"text":258},"I sistemi di ricerca hanno due obiettivi in competizione: trovare abbastanza materiale potenzialmente rilevante e mettere il materiale migliore vicino alla cima. Il recupero rapido di prima fase di solito ottimizza la generazione dei candidati. Un modello più forte di seconda fase può poi spendere più calcolo per distinguere i migliori candidati.",{},{"id":261,"data":262,"type":218,"tunes":264},"p-meaning-2",{"text":263},"Gli embedding, gli indici vettoriali e i reranker occupano posizioni diverse in quel processo. Trattarli come un'unica funzionalità nasconde scelte di progettazione importanti su recall, precisione, latenza, archiviazione, filtraggio dei metadati e costo del modello.",{},{"id":266,"data":267,"type":218,"tunes":269},"p-meaning-3",{"text":268},"La distinzione previene anche un errore comune nel RAG: presumere che memorizzare gli embedding dei documenti in un database vettoriale crei automaticamente un retrieval di alta qualità. La qualità del retrieval dipende dal modello di embedding, dal chunking, dai metadati, dalla costruzione della query, dalla configurazione dell'indice, dal numero di candidati, dal retrieval ibrido, dal reranking e dall'autorevolezza delle fonti sottostanti.",{},{"id":271,"data":272,"type":42,"tunes":274},"h-simple",{"text":273,"level":247},"L'esempio più semplice",{},{"id":276,"data":277,"type":218,"tunes":279},"p-simple-1",{"text":278},"Supponiamo che una base di conoscenza contenga 100.000 chunk di documenti. Un utente chiede: “Come revoco un token API?”",{},{"id":281,"data":282,"type":218,"tunes":284},"p-simple-2",{"text":283},"Innanzitutto, un modello di embedding può codificare la query in un vettore. I chunk dei documenti possono già avere i propri embedding memorizzati. Una ricerca vettoriale confronta quindi il vettore della query con i vettori dei documenti indicizzati e restituisce, per esempio, 30 candidati probabili.",{},{"id":286,"data":287,"type":218,"tunes":289},"p-simple-3",{"text":288},"Quei 30 candidati possono poi essere passati a un reranker. Il reranker confronta la query più direttamente con ciascun candidato e produce un nuovo ordinamento di rilevanza. L'applicazione potrebbe mantenere i migliori cinque per il contesto del modello.",{},{"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. Incorpora i documenti","Converti ogni chunk ricercabile in una rappresentazione numerica, di solito al momento dell'ingestione.",{"label":298,"description":299},"2. Memorizza\u002Findicizza i vettori","Associa i vettori a ID dei documenti e metadati in un indice vettoriale o database ricercabile.",{"label":301,"description":302},"3. Incorpora la query","Codifica la query dell'utente usando il modello di embedding compatibile e la configurazione della query.",{"label":304,"description":305},"4. Recupera i candidati","Esegui una ricerca di similarità vettoriale, spesso con filtri sui metadati, per produrre un insieme più ampio di top-k candidati.",{"label":307,"description":308},"5. Riordina i candidati","Applica un modello di rilevanza più forte alla query e al piccolo insieme di candidati.",{"label":310,"description":311},"6. Seleziona il contesto","Mantieni i passaggi più utili per la risposta a valle, il passo dell'agente o il risultato di ricerca.","Una pipeline di base di retrieval semantico a due fasi","auto","processFlow",{},{"id":317,"data":318,"type":42,"tunes":320},"h-stops",{"text":319,"level":247},"Dove si ferma l'esempio semplice",{},{"id":322,"data":323,"type":218,"tunes":325},"p-stops-1",{"text":324},"I sistemi di retrieval reali non devono necessariamente usare embedding densi. La ricerca per parole chiave come BM25 può essere il retriever di prima fase. Anche il retrieval sparso appreso, i filtri SQL, la traversata di grafi o le API applicative possono generare candidati.",{},{"id":327,"data":328,"type":218,"tunes":330},"p-stops-2",{"text":329},"Un reranker inoltre non si preoccupa che i candidati provengano da un database vettoriale. Può riordinare risultati BM25, risultati ibridi, documenti selezionati manualmente o candidati provenienti da più retriever.",{},{"id":332,"data":333,"type":218,"tunes":335},"p-stops-3",{"text":334},"Allo stesso modo, gli embedding non richiedono un database vettoriale specializzato. Piccoli dataset possono essere confrontati in memoria o con database generici ed estensioni vettoriali. I sistemi vettoriali specializzati diventano utili quando indicizzazione, ricerca approssimata del vicino più prossimo, filtraggio, scala, comportamento di aggiornamento o requisiti operativi li giustificano.",{},{"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","Compito principale",[344,344,344],"",{"id":346,"label":347,"values":348},"input","Input tipico",[344,344,344],{"id":350,"label":351,"values":352},"output","Output tipico",[344,344,344],{"id":354,"label":355,"values":356},"cost","Profilo di costo",[344,344,344],{"id":358,"label":359,"values":360},"can-miss","Errore tipico",[344,344,344],"Tre diversi componenti di recupero","table",[364,367,370],{"id":365,"label":366},"embedding","Embedding",{"id":368,"label":369},"vector","Database vettoriale \u002F indice",{"id":371,"label":372},"reranker","Reranker","comparison",{},{"id":376,"data":377,"type":42,"tunes":379},"h-embeddings",{"text":378,"level":247},"Embedding: rappresentazione, non recupero",{},{"id":381,"data":382,"type":218,"tunes":384},"p-emb-1",{"text":383},"Un embedding è una rappresentazione numerica prodotta da un modello. Per il recupero semantico, i testi con significato correlato sono destinati a occupare posizioni utili in uno spazio vettoriale in modo che una funzione di similarità o distanza possa confrontarli.",{},{"id":386,"data":387,"type":218,"tunes":389},"p-emb-2",{"text":388},"Sentence-BERT è stato un passo influente nel rendere pratica la similarità semantica a livello di frase con rappresentazioni in stile bi-encoder che possono essere calcolate indipendentemente e confrontate in modo efficiente. L'idea generale rimane centrale nel recupero denso moderno: precalcolare le rappresentazioni dei documenti, calcolare la rappresentazione della query al momento della ricerca, quindi confrontarle.",{},{"id":391,"data":392,"type":218,"tunes":394},"p-emb-3",{"text":393},"L'embedding stesso non cerca in un corpus. Sono dati prodotti da un modello di embedding. Il recupero inizia quando il sistema confronta la rappresentazione della query con i candidati memorizzati.",{},{"id":396,"data":397,"type":42,"tunes":399},"h-embedding-model",{"text":398,"level":246},"Il modello di embedding definisce lo spazio di rappresentazione",{},{"id":401,"data":402,"type":218,"tunes":404},"p-emodel-1",{"text":403},"I vettori dei documenti e delle query devono essere compatibili con il modello e la configurazione utilizzati per crearli. Sostituire un modello di embedding può cambiare dimensionalità, comportamento di similarità, copertura linguistica e prestazioni di dominio.",{},{"id":406,"data":407,"type":218,"tunes":409},"p-emodel-2",{"text":408},"Ecco perché una migrazione del modello di embedding non è semplicemente un cambio di nome API. I documenti esistenti potrebbero dover essere re-embedded e l'indice ricostruito o versionato.",{},{"id":411,"data":412,"type":42,"tunes":414},"h-dense-sparse",{"text":413,"level":246},"Le rappresentazioni dense e sparse sono diverse",{},{"id":416,"data":417,"type":218,"tunes":419},"p-dense-1",{"text":418},"Gli embedding densi di solito contengono molte dimensioni non nulle e sono comunemente usati per la similarità semantica. Le rappresentazioni sparse contengono molti zeri e possono preservare una struttura più forte simile a token o termini.",{},{"id":421,"data":422,"type":218,"tunes":424},"p-dense-2",{"text":423},"Entrambi possono supportare il recupero semantico, e i sistemi di ricerca moderni possono combinare segnali densi, sparsi e lessicali. La \"ricerca vettoriale\" quindi non significa sempre una pipeline di similarità coseno densa.",{},{"id":426,"data":427,"type":42,"tunes":429},"h-distance",{"text":428,"level":246},"Le funzioni di similarità fanno parte del contratto di rappresentazione",{},{"id":431,"data":432,"type":218,"tunes":434},"p-distance-1",{"text":433},"Similarità coseno, prodotto scalare e distanza euclidea non significano la stessa cosa. La metrica corretta dipende da come il modello di embedding è stato addestrato e normalizzato.",{},{"id":436,"data":437,"type":218,"tunes":439},"p-distance-2",{"text":438},"La documentazione attuale di Qdrant, ad esempio, richiede una metrica di distanza come parte della configurazione vettoriale e documenta scelte in stile coseno, prodotto scalare ed euclideo. La regola architetturale importante è trattare la metrica come parte del contratto di embedding\u002Findice piuttosto che sceglierne una arbitrariamente.",{},{"id":441,"data":442,"type":226,"tunes":445},"embedding-not-truth",{"body":443,"title":444,"variant":233},"Due passaggi possono essere semanticamente vicini mentre uno è obsoleto, non autorizzato o errato. Gli embedding stimano la similarità rappresentazionale; non determinano l'autorità della Fonte di Verità, l'aggiornamento o la validità probatoria.","La similarità degli embedding non è un supporto fattuale",{},{"id":447,"data":448,"type":42,"tunes":450},"h-vector-db",{"text":449,"level":247},"Database vettoriali e indici: recupero dei candidati",{},{"id":452,"data":453,"type":218,"tunes":455},"p-vdb-1",{"text":454},"Un database vettoriale o un sistema di ricerca con capacità vettoriale organizza le rappresentazioni vettoriali in modo che l'applicazione possa recuperare efficientemente i candidati vicini. I sistemi pratici di solito associano i vettori a ID e metadati di payload come fonte, lingua, tenant, tipo di documento, timestamp o ambito di accesso.",{},{"id":457,"data":458,"type":218,"tunes":460},"p-vdb-2",{"text":459},"Qdrant, ad esempio, organizza i dati in collezioni di punti dove un punto contiene un vettore e metadati di payload opzionali. La sua documentazione descrive la ricerca di similarità basata su HNSW e il filtraggio dei metadati come capacità separate del livello di recupero.",{},{"id":462,"data":463,"type":218,"tunes":465},"p-vdb-3",{"text":464},"Questa distinzione è importante: l'indice vettoriale risponde a un problema di nearest-neighbor, mentre i filtri sul payload impongono vincoli strutturali come tenant, classe di documento o lingua.",{},{"id":467,"data":468,"type":42,"tunes":470},"h-ann",{"text":469,"level":246},"La ricerca approssimata del nearest-neighbor scambia esattezza con efficienza",{},{"id":472,"data":473,"type":218,"tunes":475},"p-ann-1",{"text":474},"Confrontare un vettore di query con ogni vettore può essere pratico per piccole collezioni ma costoso su larga scala. Gli indici approssimati di nearest-neighbor come HNSW riducono il costo di ricerca navigando una struttura di indice invece di scansionare esaustivamente ogni vettore.",{},{"id":477,"data":478,"type":218,"tunes":480},"p-ann-2",{"text":479},"La ricerca approssimata introduce un compromesso tra recall e latenza. Una ricerca più veloce può mancare candidati che la ricerca esatta restituirebbe. I parametri dell'indice influenzano quindi la qualità del recupero, non solo le prestazioni dell'infrastruttura.",{},{"id":482,"data":483,"type":218,"tunes":485},"p-ann-3",{"text":484},"Qdrant espone sia parametri relativi a HNSW sia un'opzione di ricerca esatta, illustrando che l'archiviazione vettoriale e la politica di recupero approssimato sono decisioni separate.",{},{"id":487,"data":488,"type":42,"tunes":490},"h-filtering",{"text":489,"level":246},"Il filtraggio dei metadati appartiene prima o durante il recupero dei candidati",{},{"id":492,"data":493,"type":218,"tunes":495},"p-filter-1",{"text":494},"Se l'utente può accedere solo al tenant A, recuperare chunk semanticamente simili dal tenant B e tentare di rimuoverli in seguito è il confine di sicurezza sbagliato. I filtri di autorizzazione e di eleggibilità rigida dovrebbero vincolare lo spazio dei candidati prima che tali candidati possano influenzare l'elaborazione a valle.",{},{"id":497,"data":498,"type":218,"tunes":500},"p-filter-2",{"text":499},"Lo stesso principio si applica a locale, stato del documento, classe di origine, data, versione del prodotto e altri vincoli deterministici. La similarità dovrebbe classificare i candidati eleggibili; non dovrebbe prevalere sull'eleggibilità.",{},{"id":502,"data":503,"type":42,"tunes":505},"h-vector-not-required",{"text":504,"level":246},"Un database vettoriale è opzionale",{},{"id":507,"data":508,"type":218,"tunes":510},"p-optional-1",{"text":509},"Per un piccolo corpus, il confronto brute-force del coseno può essere semplice e sufficiente. Anche un database relazionale con supporto vettoriale può essere adeguato. Un database vettoriale dedicato diventa prezioso quando il suo indicizzazione, filtraggio, archiviazione distribuita, comportamento di aggiornamento o caratteristiche operative risolvono un requisito reale.",{},{"id":512,"data":513,"type":218,"tunes":515},"p-optional-2",{"text":514},"Scegliere un database vettoriale perché \"RAG ne ha bisogno\" inverte il processo architetturale. Inizia dai requisiti di recupero e dalla scala, poi seleziona la tecnologia di archiviazione\u002Findice.",{},{"id":517,"data":518,"type":42,"tunes":520},"h-rerank",{"text":519,"level":247},"Reranking: raffinamento della rilevanza di secondo stadio",{},{"id":522,"data":523,"type":218,"tunes":525},"p-rerank-1",{"text":524},"Un reranker riceve una query e un insieme più piccolo di candidati già recuperati, poi assegna punteggi di rilevanza più forti o un nuovo ordinamento. Normalmente è più costoso dal punto di vista computazionale rispetto al recupero di primo stadio, motivo per cui viene applicato dopo la generazione dei candidati anziché all'intero corpus.",{},{"id":527,"data":528,"type":218,"tunes":530},"p-rerank-2",{"text":529},"L'attuale guida di Elastic descrive il reranking semantico come una tecnica di stadio finale su un piccolo insieme top-k e osserva che può raffinare il recupero lessicale, semantico o ibrido. Cohere documenta la stessa architettura: ricerca lessicale o semantica di primo stadio seguita da uno stadio di reranking.",{},{"id":532,"data":533,"type":218,"tunes":535},"p-rerank-3",{"text":534},"Un'implementazione comune utilizza un modello simile a un cross-encoder che esamina insieme la query e ciascun candidato. Questa interazione più ricca può distinguere la rilevanza con maggiore precisione rispetto alla similarità di embedding indipendente, ma è molto più costosa su scala di corpus.",{},{"id":537,"data":538,"type":42,"tunes":540},"h-bi-cross",{"text":539,"level":246},"Il recupero con bi-encoder e il reranking con cross-encoder risolvono problemi di costo diversi",{},{"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],"Proprietà","Recupero con bi-encoder \u002F embedding","Reranking in stile cross-encoder",[550,551,552],"Codifica","Query e documenti rappresentati indipendentemente","Query e candidato elaborati congiuntamente",[554,555,556],"Calcolo sui documenti","Può essere precalcolato all'ingestione","Normalmente ricalcolato per ogni coppia query-candidato",[558,559,560],"Ricerca su scala di corpus","Adatto con indici vettoriali","Di solito troppo costoso sull'intero corpus",[562,563,564],"Ruolo tipico","Generazione di candidati ad alto recall","Ordinamento ad alta precisione di un piccolo insieme di candidati",[566,567,568],"Compromesso principale","Veloce e scalabile ma l'interazione di rilevanza è compressa in vettori","Giudizio di rilevanza più ricco ma latenza\u002Fcosto più elevati",{},{"id":571,"data":572,"type":42,"tunes":574},"h-rerank-limit",{"text":573,"level":246},"Un reranker non può recuperare ciò che il recupero ha mancato",{},{"id":576,"data":577,"type":218,"tunes":579},"p-rerank-limit-1",{"text":578},"Se il documento rilevante è assente dall'insieme dei candidati, il reranking non ha nulla da promuovere. Questo è il motivo centrale per valutare separatamente il recupero e il reranking.",{},{"id":581,"data":582,"type":218,"tunes":584},"p-rerank-limit-2",{"text":583},"Una pipeline può avere un'eccellente precisione del reranker e fallire comunque perché il richiamo della prima fase è scarso. Aumentare la qualità del reranker non riparerà la copertura mancante delle fonti, un chunking errato, filtri restrittivi o un retriever di candidati debole.",{},{"id":586,"data":587,"type":226,"tunes":591},"recall-precision",{"body":588,"title":589,"variant":590},"Prima fase: \u003Cstrong>non perdere i candidati utili.\u003C\u002Fstrong>\u003Cbr>Seconda fase: \u003Cstrong>mettere i migliori candidati per primi.\u003C\u002Fstrong>\u003Cbr>\u003Cbr>Questa non è una regola matematica universale, ma è un modello ingegneristico utile per il recupero a due fasi.","Obiettivo di recupero utile","success",{},{"id":593,"data":594,"type":42,"tunes":596},"h-hybrid",{"text":595,"level":247},"Il recupero ibrido è una scelta progettuale separata",{},{"id":598,"data":599,"type":218,"tunes":601},"p-hybrid-1",{"text":600},"Il recupero semantico denso è forte quando query e documento usano parole diverse ma esprimono un significato correlato. Il recupero lessicale è forte quando contano termini esatti, identificatori, nomi, codici o frasi rare.",{},{"id":603,"data":604,"type":218,"tunes":606},"p-hybrid-2",{"text":605},"Il recupero ibrido combina più segnali candidati, spesso BM25 lessicale e similarità vettoriale, poi unisce le classifiche usando un metodo come la Reciprocal Rank Fusion o una combinazione ponderata dei punteggi.",{},{"id":608,"data":609,"type":218,"tunes":611},"p-hybrid-3",{"text":610},"Il reranking può quindi operare sull'insieme fuso dei candidati. Il recupero ibrido e il reranking sono pertanto fasi complementari ma distinte.",{},{"id":613,"data":614,"type":42,"tunes":616},"h-bm25",{"text":615,"level":246},"BM25 non è obsoleto perché esistono gli embedding",{},{"id":618,"data":619,"type":218,"tunes":621},"p-bm25-1",{"text":620},"La ricerca per parole chiave può superare il recupero denso per identificatori esatti, numeri di versione, messaggi di errore, codici prodotto e vocabolario specializzato. SQLite FTS5, ad esempio, include una funzione di ranking BM25 per la ricerca full-text.",{},{"id":623,"data":624,"type":218,"tunes":626},"p-bm25-2",{"text":625},"Un'architettura di recupero solida può usare il recupero lessicale come unica prima fase, il recupero vettoriale come unica prima fase, o combinare entrambi a seconda del corpus e della distribuzione delle query.",{},{"id":628,"data":629,"type":42,"tunes":631},"h-chunking",{"text":630,"level":247},"Il chunking cambia ciò che embedding e reranker possono vedere",{},{"id":633,"data":634,"type":218,"tunes":636},"p-chunk-1",{"text":635},"Se un documento viene suddiviso male, nessun componente di recupero successivo può ricostruire completamente l'unità semantica mancante. Un chunk che separa una condizione dalla sua eccezione può generare embedding fuorvianti e può anche essere riordinato in modo errato perché il testo candidato è incompleto.",{},{"id":638,"data":639,"type":218,"tunes":641},"p-chunk-2",{"text":640},"Dimensione dei chunk, sovrapposizione, confini strutturali e metadati influenzano quindi sia il richiamo dei candidati sia il giudizio del reranker. La valutazione del recupero dovrebbe testare l'intera pipeline dall'ingestione al ranking, non solo il modello di embedding.",{},{"id":643,"data":644,"type":42,"tunes":646},"h-scores",{"text":645,"level":247},"Non confrontare i punteggi di recupero come se fossero probabilità universali",{},{"id":648,"data":649,"type":218,"tunes":651},"p-scores-1",{"text":650},"Similarità coseno, punteggi BM25, punteggi di vettori sparsi, ranghi RRF e punteggi del reranker hanno significati diversi. Un punteggio di 0,82 di un modello di embedding non è automaticamente confrontabile con 0,82 di un altro modello o con un punteggio di un reranker.",{},{"id":653,"data":654,"type":218,"tunes":656},"p-scores-2",{"text":655},"Le soglie dovrebbero essere calibrate per il modello, il corpus e il compito effettivi. Le attuali linee guida di Elastic osservano anche che i punteggi di similarità degli embedding possono dipendere dalla query, il che rende rischiosi i tagli universali.",{},{"id":658,"data":659,"type":42,"tunes":661},"h-eval",{"text":660,"level":247},"Valutare separatamente le fasi di recupero",{},{"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],"Livello","Domanda utile","Esempio di metrica o test",[671,672,673],"Copertura delle fonti","Il corpus contiene le informazioni necessarie?","Audit di copertura \u002F insieme di fonti con risposte note",[675,676,677],"Chunking","L'evidenza necessaria è recuperabile come unità coerente?","Revisione del supporto a livello di chunk",[679,680,681],"Recupero di prima fase","L'elemento rilevante entra nell'insieme dei candidati?","Recall@k",[683,684,685],"Ranking","Quanto in alto appare l'evidenza rilevante?","MRR, nDCG, precision@k",[687,688,689],"Reranking","Il punteggio di seconda fase migliora l'ordinamento?","Delta nDCG \u002F MRR \u002F precision",[691,692,693],"Selezione del contesto","I passaggi finali selezionati contengono un supporto sufficiente?","Rilevanza \u002F copertura del contesto",[695,696,697],"Fase di risposta","Il modello usa correttamente l'evidenza selezionata?","Valutazione di fedeltà \u002F affermazione-evidenza",{},{"id":700,"data":701,"type":218,"tunes":703},"p-eval-1",{"text":702},"Questa separazione è operativamente importante. Se Recall@50 è scarso, il reranker non è il primo componente da correggere. Se Recall@50 è forte ma il miglior passaggio rimane al rango 38, il reranking o la fusione del ranking diventa un obiettivo plausibile.",{},{"id":705,"data":706,"type":42,"tunes":708},"h-failure-map",{"text":707,"level":247},"Quale livello ha effettivamente fallito?",{},{"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","Il documento rilevante non appare mai",[344,344,344],{"id":718,"label":719,"values":720},"lowrank","Il documento rilevante appare troppo in basso",[344,344,344],{"id":722,"label":723,"values":724},"wrongtenant","Semanticamente buono ma risultato proibito",[344,344,344],{"id":726,"label":727,"values":728},"stale","Risultato rilevante ma obsoleto",[344,344,344],{"id":730,"label":731,"values":732},"context","Risultato corretto recuperato ma omesso dal prompt",[344,344,344],"Sintomi e probabile livello di retrieval",[735,738,741],{"id":736,"label":737},"symptom","Sintomo osservato",{"id":739,"label":740},"likely","Livello probabile",{"id":742,"label":743},"test","Prima diagnostica",{},{"id":746,"data":747,"type":42,"tunes":749},"h-authority",{"text":748,"level":247},"Rilevanza e Fonte di Verità sono diverse",{},{"id":751,"data":752,"type":218,"tunes":754},"p-authority-1",{"text":753},"Un reranker può far sembrare estremamente rilevante un documento obsoleto. Un indice vettoriale può recuperare un riassunto secondario che è semanticamente più vicino della fonte primaria. La qualità del retrieval quindi non può sostituire le regole di autorità.",{},{"id":756,"data":757,"type":218,"tunes":759},"p-authority-2",{"text":758},"Dove l'autorità della fonte è importante, i filtri sui metadati, le classi di fonte, le regole di versione e la provenienza dovrebbero vincolare il retrieval prima che il risultato diventi contesto del modello.",{},{"id":761,"data":762,"type":226,"tunes":765},"authority-callout",{"body":763,"title":764,"variant":233},"La rilevanza risponde alla domanda se un candidato si adatta alla query. L'architettura della Fonte di Verità risponde alla domanda se quel candidato è autorizzato a stabilire l'affermazione.","Il reranking non può rendere autorevole una fonte non autorevole",{},{"id":767,"data":768,"type":42,"tunes":770},"h-impl",{"text":769,"level":247},"Evidenza dell'implementazione originale",{},{"id":772,"data":773,"type":42,"tunes":775},"h-sot-engine",{"text":774,"level":246},"Source of Truth Research Engine: il retrieval lessicale e semantico sono separati",{},{"id":777,"data":778,"type":218,"tunes":780},"p-sot-1",{"text":779},"Il Source of Truth Research Engine contiene un percorso di retrieval lessicale locale che utilizza SQLite FTS5\u002FBM25 e un percorso separato opzionale di retrieval semantico che utilizza embedding generati localmente.",{},{"id":782,"data":783,"type":218,"tunes":785},"p-sot-2",{"text":784},"La sua implementazione di ricerca semantica calcola un vettore di query e lo confronta con i vettori dei chunk memorizzati utilizzando la similarità coseno. Il progetto tratta deliberatamente la similarità semantica come un segnale di scoperta piuttosto che come prova: un candidato deve comunque essere ricondotto a una fonte concreta e a un locator prima di supportare un'affermazione.",{},{"id":787,"data":788,"type":218,"tunes":790},"p-sot-3",{"text":789},"Questa è un'evidenza di implementazione utile per R01 perché lo stesso corpus può supportare il ranking lessicale e la similarità vettoriale senza confondere nessuno dei due meccanismi con l'autorità probatoria.",{},{"id":792,"data":793,"type":42,"tunes":795},"h-client",{"text":794,"level":246},"Aaasaasa AI Client: Qdrant è un componente infrastrutturale vettoriale",{},{"id":797,"data":798,"type":218,"tunes":800},"p-client-1",{"text":799},"Aaasaasa AI Client include Qdrant\u002Finfrastruttura vettoriale come risorsa locale separata. L'architettura Electron espone i servizi Qdrant dal lato affidabile del processo principale invece di trattare la ricerca vettoriale come parte del modello stesso.",{},{"id":802,"data":803,"type":218,"tunes":805},"p-client-2",{"text":804},"Il repository contiene un adattatore client Qdrant, la configurazione del servizio Qdrant e l'infrastruttura Qdrant basata su Docker. Questo dimostra la separazione architetturale tra esecuzione del provider\u002Fmodello AI e archiviazione\u002Fricerca vettoriale.",{},{"id":807,"data":808,"type":218,"tunes":810},"p-client-3",{"text":809},"L'esistenza del supporto Qdrant non dovrebbe essere sopravvalutata come una pipeline RAG di produzione completa. L'evidenza qui è più ristretta: l'infrastruttura vettoriale è implementata come un proprio confine di componente.",{},{"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],"Evidenza dell'implementazione","Cosa dimostra",[819,820],"SQLite FTS5\u002FBM25 nel Source of Truth Research Engine","Il retrieval lessicale può esistere indipendentemente dagli embedding.",[822,823],"Embedding Ollama locali","La generazione della rappresentazione è una fase a sé stante.",[825,826],"Vettori semantici memorizzati + confronto coseno","Il retrieval semantico consuma gli embedding dopo che sono stati prodotti.",[828,829],"Supporto Qdrant in Aaasaasa AI Client","L'archiviazione\u002Fricerca vettoriale è una capacità infrastrutturale separata dal provider del modello.",[831,832],"Regole di evidenza\u002Fprovenienza nel Source of Truth Research Engine","La similarità recuperata non equivale ad autorità o prova.",[834,835],"Nessun reranker personalizzato dichiarato in queste implementazioni","Il reranking è spiegato come una fase architetturale, non falsamente dichiarato come evidenza già implementata.",{},{"id":838,"data":839,"type":226,"tunes":842},"impl-discipline",{"body":840,"title":841,"variant":240},"L'attuale evidenza dell'implementazione conferma il retrieval lessicale, gli embedding, l'infrastruttura di ricerca vettoriale e il retrieval consapevole della provenienza. Questo articolo \u003Cstrong>non\u003C\u002Fstrong> afferma che un servizio di reranking cross-encoder di produzione sia già implementato in questi progetti.","Confine dell'evidenza",{},{"id":844,"data":845,"type":42,"tunes":847},"h-decisions",{"text":846,"level":247},"Quando hai bisogno di ciascun componente?",{},{"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],"Esigenza","Componente probabile",[856,857],"Somiglianza semantica tra formulazioni diverse","Modello di embedding + ricerca per similarità vettoriale",[859,860],"Ricerca efficiente su un grande corpus vettoriale","Indice\u002Fdatabase vettoriale o motore di ricerca con capacità vettoriali",[862,863],"Identificatori esatti, codici di errore o termini rari","Recupero lessicale\u002Ffull-text come BM25",[865,866],"Sia terminologia esatta che significato semantico","Recupero ibrido lessicale + semantico",[868,372],"L'insieme dei candidati è buono ma l'ordinamento è debole",[870,871],"Gli elementi rilevanti sono assenti dall'insieme dei candidati","Migliorare copertura delle fonti, chunking, retriever, filtri o numero di candidati prima del reranking",[873,874],"Vincoli rigidi di tenant\u002Ffonte\u002Fversione","Filtraggio deterministico di metadati\u002Fautorizzazione",[876,877],"Corpus piccolo","Potenzialmente semplice similarità brute-force o database generico invece di un vector DB dedicato",{},{"id":880,"data":881,"type":42,"tunes":883},"h-sequence",{"text":882,"level":247},"Una sequenza pratica di progettazione del recupero",{},{"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. Definire i tipi di query","Identificare domande semantiche, ricerche esatte, identificatori, letture dello stato corrente e pattern specifici del dominio.",{"label":892,"description":893},"2. Definire le fonti ammissibili","Applicare vincoli di tenant, autorizzazione, locale, versione, classe di fonte e freschezza.",{"label":895,"description":896},"3. Stabilire una baseline lessicale","Misurare se il semplice recupero full-text\u002FBM25 risolve già gran parte del carico di lavoro.",{"label":898,"description":899},"4. Aggiungere embedding dove serve recall semantico","Scegliere e valutare un modello di embedding su query rappresentative del dominio.",{"label":901,"description":902},"5. Scegliere archiviazione\u002Findicizzazione vettoriale in base alla scala","Usare brute force, supporto vettoriale del database o un motore vettoriale dedicato secondo i requisiti.",{"label":904,"description":905},"6. Valutare il recall del primo stadio","Confermare che le evidenze rilevanti entrano in un insieme di candidati sufficientemente ampio.",{"label":907,"description":908},"7. Aggiungere recupero ibrido se i segnali sono complementari","Fondere ranking lessicali e semantici quando entrambi migliorano materialmente la generazione dei candidati.",{"label":910,"description":911},"8. Aggiungere reranking se l'ordinamento resta il collo di bottiglia","Applicare il modello più forte solo all'insieme dei candidati dove il suo costo è giustificato.",{"label":913,"description":914},"9. Ottimizzare la selezione finale del contesto","Controllare ridondanza, budget di contesto, autorità, diversità e copertura delle evidenze prima della generazione.",{"label":916,"description":917},"10. Valutare end-to-end","Misurare separatamente qualità di recupero, contesto e risposta così da localizzare i fallimenti.","Progettare il recupero dai requisiti, non dai nomi dei prodotti",{},{"id":921,"data":922,"type":42,"tunes":924},"h-misconceptions",{"text":923,"level":247},"Idee sbagliate comuni",{},{"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],"Idea sbagliata","Correzione",[933,934],"“Un embedding è un database vettoriale.”","Un embedding è una rappresentazione; il database\u002Findice memorizza e cerca rappresentazioni.",[936,937],"“Un database vettoriale crea significato semantico.”","Il modello di embedding crea la rappresentazione; il sistema vettoriale la indicizza e la confronta.",[939,940],"“RAG richiede un database vettoriale.”","RAG richiede il recupero, non una specifica tecnologia di recupero.",[942,943],"“Il reranking è uguale alla ricerca vettoriale.”","La ricerca vettoriale genera candidati; il reranking riordina un insieme di candidati.",[945,946],"“I reranker risolvono un recall scarso.”","Non possono promuovere un documento che non è mai stato recuperato.",[948,949],"“La ricerca densa sostituisce BM25.”","La ricerca lessicale resta preziosa per termini esatti, identificatori e vocabolario specializzato.",[951,952],"“Maggiore similarità significa maggiore autorevolezza.”","Similarità e autorevolezza della fonte sono dimensioni diverse.",[954,955],"“Più top-k migliora sempre il RAG.”","Insiemi di candidati più grandi possono migliorare il recall ma aggiungono latenza, rumore e onere di selezione del contesto.",[957,958],"“Una soglia di punteggio funziona ovunque.”","I punteggi dipendono da modello, query, corpus e metodo di recupero e devono essere calibrati.",[960,961],"“Un vector DB dedicato è sempre più avanzato.”","È giustificato solo quando le sue capacità operative e di recupero corrispondono ai requisiti.",{},{"id":964,"data":965,"type":42,"tunes":967},"h-edge",{"text":966,"level":247},"Casi limite e limitazioni",{},{"id":969,"data":970,"type":218,"tunes":972},"p-edge-1",{"text":971},"Alcune applicazioni non necessitano di ricerca semantica. Una ricerca esatta nel database o SQL strutturato può essere più corretta, più veloce e più facile da verificare rispetto al recupero tramite embedding.",{},{"id":974,"data":975,"type":218,"tunes":977},"p-edge-2",{"text":976},"Alcuni corpus sono così piccoli che una scansione vettoriale completa è accettabile. L'indicizzazione approssimata aggiunge complessità senza benefici significativi.",{},{"id":979,"data":980,"type":218,"tunes":982},"p-edge-3",{"text":981},"Alcune query richiedono un recall elevato prima di qualsiasi ottimizzazione della precisione. Scoperta legale, ricerca e revisione di conformità possono preferire un recupero ampio dei candidati seguito da filtraggio trasparente e revisione umana.",{},{"id":984,"data":985,"type":218,"tunes":987},"p-edge-4",{"text":986},"Il recupero multilingue e specifico del dominio può comportarsi molto diversamente tra modelli di embedding. Le affermazioni di benchmark da dataset pubblici non dovrebbero essere considerate prova per un corpus privato.",{},{"id":989,"data":990,"type":218,"tunes":992},"p-edge-5",{"text":991},"La latenza del reranking cresce con il numero e la lunghezza dei candidati. La dimensione dei candidati dovrebbe quindi essere ottimizzata come variabile di accuratezza\u002Fcosto\u002Flatenza invece di essere copiata da un tutorial.",{},{"id":994,"data":995,"type":42,"tunes":997},"h-change",{"text":996,"level":247},"Cosa cambierebbe questa risposta?",{},{"id":999,"data":1000,"type":218,"tunes":1002},"p-change-1",{"text":1001},"I confini dei componenti non cambierebbero se un fornitore impacchettasse generazione di embedding, indicizzazione vettoriale e reranking dietro un'unica API. Il prodotto può nascondere le fasi, ma esse restano concettualmente responsabilità diverse con modalità di fallimento diverse.",{},{"id":1004,"data":1005,"type":218,"tunes":1007},"p-change-2",{"text":1006},"Futuri modelli di embedding o recupero potrebbero ridurre la necessità di reranking separato in alcuni carichi di lavoro, mentre metodi più forti di late-interaction o sparse appresi possono sfumare le tradizionali categorie dense\u002Flessicali. L'architettura dovrebbe comunque chiedersi quale fase produce rappresentazioni, quale fase genera candidati e quale fase raffina il ranking.",{},{"id":1009,"data":1010,"type":218,"tunes":1012},"p-change-3",{"text":1011},"Il design migliore cambia anche con dimensione del corpus, mix di query, lingua, terminologia di dominio, frequenza di aggiornamento, autorevolezza della fonte, budget di latenza e risultati di valutazione.",{},{"id":1014,"data":1015,"type":42,"tunes":1017},"h-related",{"text":1016,"level":247},"Conoscenza canonica correlata",{},{"id":1019,"data":1020,"type":218,"tunes":1022},"p-related-1",{"text":1021},"R01 presuppone che il concetto di base di RAG sia già compreso. RAG è il pattern più ampio in cui informazioni esterne recuperate vengono fornite a un modello; embedding, ricerca vettoriale e reranking sono componenti di recupero opzionali all'interno di quel pattern.",{},{"id":1024,"data":1025,"type":1030,"tunes":1031},"ref-rag",{"url":1026,"title":1027,"excerpt":1028,"ctaLabel":1029},"https:\u002F\u002Fstajic.de\u002Fit\u002Fblog\u002Fwhat-is-rag-the-simplest-explanation-of-how-it-works","Cos'è il RAG? La spiegazione più semplice di come funziona","Una base in linguaggio semplice su come il retrieval porta conoscenza esterna nel contesto del modello.","Leggi le basi del RAG","referralArticle",{},{"id":1033,"data":1034,"type":218,"tunes":1036},"p-related-2",{"text":1035},"Quando il retrieval fallisce, diagnostica separatamente copertura delle fonti, retrieval, ranking, assemblaggio del contesto e generazione, invece di trattare l'intero sistema come un unico \"fallimento del RAG\".",{},{"id":1038,"data":1039,"type":1030,"tunes":1044},"ref-rag-failed",{"url":1040,"title":1041,"excerpt":1042,"ctaLabel":1043},"https:\u002F\u002Fstajic.de\u002Fit\u002Fblog\u002Frag-failed-but-which-layer-actually-failed-a-diagnostic-method","Il RAG ha fallito — ma quale livello ha effettivamente fallito? Un metodo diagnostico","Un metodo livello per livello per isolare i fallimenti di copertura delle fonti, retrieval, ranking, assemblaggio del contesto, generazione, attribuzione delle evidenze e aggiornamento.","Leggi il metodo diagnostico del RAG",{},{"id":1046,"data":1047,"type":218,"tunes":1049},"p-related-3",{"text":1048},"L'architettura Source-of-Truth è il livello di autorità attorno al retrieval: decide quale fonte può stabilire un'affermazione, mentre gli embedding e il ranking decidono solo quali candidati appaiono rilevanti.",{},{"id":1051,"data":1052,"type":42,"tunes":1054},"h-faq",{"text":1053,"level":247},"Domande frequenti",{},{"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","Gli embedding sono rappresentazioni numeriche prodotte da un modello. Un database vettoriale o un indice vettoriale memorizza e cerca quelle rappresentazioni insieme a ID e metadati.","Qual è la differenza tra embedding e un database vettoriale?",{"id":1064,"answer":1065,"question":1066},"faq2","Un reranker prende un insieme di candidati già recuperati e riassegna un punteggio o riordina quei candidati usando un modello di rilevanza o un metodo di scoring più forte.","Cosa fa un reranker?",{"id":1068,"answer":1069,"question":1070},"faq3","No. Il RAG richiede il recupero di informazioni esterne. Il retrieval può usare ricerca lessicale, SQL, API, grafi, ricerca vettoriale, ricerca ibrida o combinazioni di questi.","Il RAG richiede un database vettoriale?",{"id":1072,"answer":1073,"question":1074},"faq4","I reranker in genere eseguono un'interazione query-documento più costosa, quindi di solito vengono applicati a un piccolo insieme di candidati top-k dopo un retriever di primo stadio più veloce.","Perché non usare il reranker sull'intero corpus?",{"id":1076,"answer":1077,"question":1078},"faq5","No. Se il documento rilevante non è stato recuperato nell'insieme dei candidati, il reranking non ha nulla da promuovere.","Il reranking può risolvere un documento mancante?",{"id":1080,"answer":1081,"question":1082},"faq6","No. È una misura di similarità il cui significato numerico dipende dal modello di embedding e dal corpus. Non dovrebbe essere trattata come una probabilità universale di rilevanza.","La similarità coseno è una probabilità di rilevanza?",{"id":1084,"answer":1085,"question":1086},"faq7","Usa il retrieval ibrido quando la valutazione mostra che i segnali lessicali e semantici recuperano documenti rilevanti complementari. Non è automaticamente migliore per ogni corpus.","Dovrei usare BM25 e la ricerca vettoriale insieme?",{"id":1088,"answer":1089,"question":1090},"faq8","Quando indicizzazione vettoriale, filtraggio, scala, aggiornamenti, operatività distribuita o altri requisiti specifici per i vettori giustificano un sistema specializzato. Carichi di lavoro piccoli potrebbero non averne bisogno.","Quando ho bisogno di un database vettoriale dedicato?","Embedding, database vettoriali e reranking",{},{"id":1094,"data":1095,"type":42,"tunes":1097},"h-glossary",{"text":1096,"level":247},"Glossario",{},{"id":1099,"data":1100,"type":1099,"tunes":1155},"glossary",{"title":1101,"entries":1102},"Termini chiave del retrieval",[1103,1105,1109,1113,1117,1121,1125,1129,1133,1137,1140,1144,1148,1151],{"term":366,"anchor":365,"definition":1104},"Una rappresentazione numerica di contenuto prodotta da un modello di embedding per similarità, clustering, retrieval o attività correlate.",{"term":1106,"anchor":1107,"definition":1108},"Vettore denso","dense-vector","Una rappresentazione vettoriale in cui molte dimensioni portano valori diversi da zero, comunemente usata nel retrieval semantico.",{"term":1110,"anchor":1111,"definition":1112},"Vettore sparso","sparse-vector","Una rappresentazione ad alta dimensionalità in cui la maggior parte delle dimensioni è zero, spesso preservando una struttura più forte simile a token o termini.",{"term":1114,"anchor":1115,"definition":1116},"Indice vettoriale","vector-index","Una struttura dati che organizza i vettori per un recupero efficiente per similarità o nearest-neighbor.",{"term":1118,"anchor":1119,"definition":1120},"Database vettoriale","vector-database","Un sistema di archiviazione\u002Fricerca progettato per gestire vettori, metadati associati e carichi di lavoro di retrieval vettoriale.",{"term":1122,"anchor":1123,"definition":1124},"ANN","ann","Ricerca approssimata del nearest-neighbor, che scambia il confronto esaustivo esatto con un retrieval più veloce su larga scala.",{"term":1126,"anchor":1127,"definition":1128},"HNSW","hnsw","Hierarchical Navigable Small World, un approccio di indicizzazione approssimata del nearest-neighbor basato su grafo ampiamente usato per il retrieval vettoriale.",{"term":1130,"anchor":1131,"definition":1132},"BM25","bm25","Un metodo di ranking della rilevanza lessicale basato sull'occorrenza dei termini e sulle statistiche del corpus, ampiamente usato nella ricerca full-text.",{"term":1134,"anchor":1135,"definition":1136},"Ricerca ibrida","hybrid-search","Retrieval che combina risultati o punteggi da più metodi di retrieval come la ricerca lessicale e vettoriale.",{"term":687,"anchor":1138,"definition":1139},"reranking","Una fase di retrieval successiva che riassegna un punteggio e riordina un insieme di candidati già generato.",{"term":1141,"anchor":1142,"definition":1143},"Bi-encoder","bi-encoder","Un'architettura che codifica query e candidato in modo indipendente, consentendo precalcolo e ricerca di similarità scalabile.",{"term":1145,"anchor":1146,"definition":1147},"Cross-encoder","cross-encoder","Un modello che elabora congiuntamente una query e un testo candidato, spesso migliorando il giudizio di rilevanza a un costo computazionale più elevato.",{"term":681,"anchor":1149,"definition":1150},"recall-at-k","La frazione di elementi rilevanti recuperati entro i primi k candidati recuperati.",{"term":1152,"anchor":1153,"definition":1154},"nDCG","ndcg","Normalized Discounted Cumulative Gain, una metrica di ranking che premia i risultati rilevanti che appaiono più in alto in un elenco ordinato.",{},{"id":1157,"data":1158,"type":42,"tunes":1160},"h-conclusion",{"text":1159,"level":247},"Conclusione",{},{"id":1162,"data":1163,"type":218,"tunes":1165},"p-conclusion-1",{"text":1164},"Il modello di retrieval pulito è semplice: gli embedding rappresentano il significato, la ricerca vettoriale recupera i candidati e i reranker affinano l'ordinamento dei candidati.",{},{"id":1167,"data":1168,"type":218,"tunes":1170},"p-conclusion-2",{"text":1169},"Una volta che questi confini sono espliciti, le decisioni architetturali diventano più facili da diagnosticare. I candidati mancanti indicano copertura delle fonti, chunking, embedding, filtri o retrieval di primo stadio. Un ordinamento scarso indica ranking, fusione o reranking. Le risposte finali errate possono poi essere investigate separatamente ai livelli di contesto e generazione.",{},{"id":1172,"data":1173,"type":218,"tunes":1175},"p-conclusion-3",{"text":1174},"Il risultato più importante non è scegliere il componente di retrieval più alla moda. È costruire una pipeline di retrieval le cui fasi, confini di autorità, metriche e modalità di fallimento possano essere misurati in modo indipendente.",{},{"id":1177,"data":1178,"type":42,"tunes":1180},"h-sources",{"text":1179,"level":247},"Fonti primarie ed evidenze di implementazione",{},{"id":1182,"data":1183,"type":218,"tunes":1185},"p-sources-note",{"text":1184},"I riferimenti esterni di seguito documentano i meccanismi di rappresentazione, ricerca vettoriale e reranking usati in questo articolo. Le sezioni specifiche del progetto sono evidenze di implementazione originali e sono intenzionalmente più limitate rispetto ad affermazioni sulla completa maturità del RAG in produzione.",{},{"id":1187,"data":1188,"type":1194,"tunes":1195},"src-sbert",{"link":1189,"meta":1190},"https:\u002F\u002Farxiv.org\u002Fabs\u002F1908.10084",{"image":1191,"title":1192,"description":1193},{"url":344},"Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks","Articolo fondamentale che dimostra embedding di frasi calcolabili in modo indipendente per una ricerca efficiente di similarità semantica.","linkTool",{},{"id":1197,"data":1198,"type":1194,"tunes":1204},"src-qdrant-overview",{"link":1199,"meta":1200},"https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Foverview\u002F",{"image":1201,"title":1202,"description":1203},{"url":344},"Qdrant — Panoramica di architettura e struttura dati","Documentazione ufficiale che descrive collezioni, punti, vettori, metadati del payload e indicizzazione di similarità basata su HNSW.",{},{"id":1206,"data":1207,"type":1194,"tunes":1213},"src-qdrant-search",{"link":1208,"meta":1209},"https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fsearch\u002Fsearch\u002F",{"image":1210,"title":1211,"description":1212},{"url":344},"Qdrant — Search","Documentazione ufficiale sulla ricerca vettoriale che copre query di similarità, filtraggio, ricerca esatta versus approssimata e comportamento denso\u002Fsparso.",{},{"id":1215,"data":1216,"type":1194,"tunes":1222},"src-elastic-vector",{"link":1217,"meta":1218},"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Fvector",{"image":1219,"title":1220,"description":1221},{"url":344},"Elastic — Vector search","Documentazione attuale sul retrieval vettoriale denso\u002Fsparso, combinazioni lessicali\u002Fvettoriali e pipeline di ricerca multi-stadio.",{},{"id":1224,"data":1225,"type":1194,"tunes":1231},"src-elastic-rerank",{"link":1226,"meta":1227},"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fsolutions\u002Fsearch\u002Franking\u002Fsemantic-reranking",{"image":1228,"title":1229,"description":1230},{"url":344},"Elastic — Reranking semantico","Linee guida attuali che definiscono il reranking semantico come un'operazione di rilevanza di fase successiva su un insieme di candidati più piccolo.",{},{"id":1233,"data":1234,"type":1194,"tunes":1240},"src-cohere-rerank",{"link":1235,"meta":1236},"https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Freranking-with-cohere",{"image":1237,"title":1238,"description":1239},{"url":344},"Cohere — Reranking con Cohere","Documentazione attuale che mostra il reranking come un miglioramento di seconda fase rispetto al recupero di prima fase lessicale o semantico.",{},{"id":1242,"data":1243,"type":1194,"tunes":1249},"src-sqlite-fts5",{"link":1244,"meta":1245},"https:\u002F\u002Fwww.sqlite.org\u002Ffts5.html",{"image":1246,"title":1247,"description":1248},{"url":344},"SQLite FTS5","Documentazione ufficiale di SQLite per la ricerca full-text e la funzione di ranking BM25 integrata utilizzata come evidenza di recupero lessicale.",{},"2.31","Gli embedding rappresentano il significato, i database vettoriali recuperano i candidati e i reranker affinano i risultati. Scopri come questi tre livelli di recupero si differenziano e collaborano nel 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":1259,"de":1260,"sr":1261,"es":1262,"fr":1263,"it":1264,"ru":1265,"zh":1266},"\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",[1268,1272,1276],{"id":1269,"name":1270,"slug":1271},64,"Architettura dell’informazione","information-architecture",{"id":1273,"name":1274,"slug":1275},60,"Controlli costo e latenza","cost-and-latency",{"id":1277,"name":1278,"slug":1279},57,"Limiti dei dati","data-boundaries",{"id":1281,"login":1282,"email":1283,"displayName":1284},"20","rooth8233","aleksandar@stajic.de","Aleksandar Stajić",[1286,2124],{"lang":1287,"title":1288,"content":1289,"contentJson":1290,"excerpt":2123},"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":1291,"blocks":1292,"version":2122},1791489989811,[1293,1297,1302,1307,1312,1316,1320,1324,1328,1332,1336,1340,1344,1348,1371,1375,1379,1383,1387,1412,1416,1420,1424,1428,1432,1436,1440,1444,1448,1452,1456,1460,1464,1469,1473,1477,1481,1485,1489,1493,1497,1501,1505,1509,1513,1517,1521,1525,1529,1533,1537,1541,1545,1573,1577,1581,1585,1590,1594,1598,1602,1606,1610,1614,1618,1622,1626,1630,1634,1638,1642,1646,1676,1680,1684,1711,1715,1719,1723,1728,1732,1736,1740,1744,1748,1752,1756,1760,1764,1789,1794,1798,1828,1832,1867,1871,1908,1912,1916,1920,1924,1928,1932,1936,1940,1944,1948,1952,1956,1963,1967,1974,1978,1982,2011,2015,2053,2057,2061,2065,2069,2073,2077,2083,2090,2096,2102,2109,2116],{"id":215,"data":1294,"type":218,"tunes":1296},{"text":1295},"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":1298,"type":226,"tunes":1301},{"body":1299,"title":1300,"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":1303,"type":226,"tunes":1306},{"body":1304,"title":1305,"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":1308,"type":226,"tunes":1311},{"body":1309,"title":1310,"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":1313,"type":248,"tunes":1315},{"title":1314,"maxLevel":246,"minLevel":247},"Contents",{},{"id":251,"data":1317,"type":42,"tunes":1319},{"text":1318,"level":247},"What this really means",{},{"id":256,"data":1321,"type":218,"tunes":1323},{"text":1322},"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":1325,"type":218,"tunes":1327},{"text":1326},"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":1329,"type":218,"tunes":1331},{"text":1330},"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":1333,"type":42,"tunes":1335},{"text":1334,"level":247},"The simplest example",{},{"id":276,"data":1337,"type":218,"tunes":1339},{"text":1338},"Suppose a knowledge base contains 100,000 document chunks. A user asks: “How do I revoke an API token?”",{},{"id":281,"data":1341,"type":218,"tunes":1343},{"text":1342},"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":1345,"type":218,"tunes":1347},{"text":1346},"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":1349,"type":314,"tunes":1370},{"steps":1350,"title":1369,"orientation":313},[1351,1354,1357,1360,1363,1366],{"label":1352,"description":1353},"1. Embed documents","Convert each searchable chunk into a numerical representation, usually at ingest time.",{"label":1355,"description":1356},"2. Store\u002Findex vectors","Associate vectors with document IDs and metadata in a searchable vector index or database.",{"label":1358,"description":1359},"3. Embed the query","Encode the user's query using the compatible embedding model and query configuration.",{"label":1361,"description":1362},"4. Retrieve candidates","Run vector similarity search, often with metadata filters, to produce a larger top-k candidate set.",{"label":1364,"description":1365},"5. Rerank candidates","Apply a stronger relevance model to the query and the small candidate set.",{"label":1367,"description":1368},"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":1372,"type":42,"tunes":1374},{"text":1373,"level":247},"Where the simple example stops",{},{"id":322,"data":1376,"type":218,"tunes":1378},{"text":1377},"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":1380,"type":218,"tunes":1382},{"text":1381},"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":1384,"type":218,"tunes":1386},{"text":1385},"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":1388,"type":373,"tunes":1411},{"rows":1389,"title":1405,"layout":362,"columns":1406},[1390,1393,1396,1399,1402],{"id":341,"label":1391,"values":1392},"Primary job",[344,344,344],{"id":346,"label":1394,"values":1395},"Typical input",[344,344,344],{"id":350,"label":1397,"values":1398},"Typical output",[344,344,344],{"id":354,"label":1400,"values":1401},"Cost profile",[344,344,344],{"id":358,"label":1403,"values":1404},"Typical failure",[344,344,344],"Three different retrieval components",[1407,1408,1410],{"id":365,"label":366},{"id":368,"label":1409},"Vector database \u002F index",{"id":371,"label":372},{},{"id":376,"data":1413,"type":42,"tunes":1415},{"text":1414,"level":247},"Embeddings: representation, not retrieval",{},{"id":381,"data":1417,"type":218,"tunes":1419},{"text":1418},"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":1421,"type":218,"tunes":1423},{"text":1422},"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":1425,"type":218,"tunes":1427},{"text":1426},"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":1429,"type":42,"tunes":1431},{"text":1430,"level":246},"The embedding model defines the representation space",{},{"id":401,"data":1433,"type":218,"tunes":1435},{"text":1434},"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":1437,"type":218,"tunes":1439},{"text":1438},"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":1441,"type":42,"tunes":1443},{"text":1442,"level":246},"Dense and sparse representations are different",{},{"id":416,"data":1445,"type":218,"tunes":1447},{"text":1446},"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":1449,"type":218,"tunes":1451},{"text":1450},"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":1453,"type":42,"tunes":1455},{"text":1454,"level":246},"Similarity functions are part of the representation contract",{},{"id":431,"data":1457,"type":218,"tunes":1459},{"text":1458},"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":1461,"type":218,"tunes":1463},{"text":1462},"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":1465,"type":226,"tunes":1468},{"body":1466,"title":1467,"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":1470,"type":42,"tunes":1472},{"text":1471,"level":247},"Vector databases and indexes: candidate retrieval",{},{"id":452,"data":1474,"type":218,"tunes":1476},{"text":1475},"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":1478,"type":218,"tunes":1480},{"text":1479},"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":1482,"type":218,"tunes":1484},{"text":1483},"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":1486,"type":42,"tunes":1488},{"text":1487,"level":246},"Approximate nearest-neighbor search trades exactness for efficiency",{},{"id":472,"data":1490,"type":218,"tunes":1492},{"text":1491},"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":1494,"type":218,"tunes":1496},{"text":1495},"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":1498,"type":218,"tunes":1500},{"text":1499},"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":1502,"type":42,"tunes":1504},{"text":1503,"level":246},"Metadata filtering belongs before or during candidate retrieval",{},{"id":492,"data":1506,"type":218,"tunes":1508},{"text":1507},"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":1510,"type":218,"tunes":1512},{"text":1511},"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":1514,"type":42,"tunes":1516},{"text":1515,"level":246},"A vector database is optional",{},{"id":507,"data":1518,"type":218,"tunes":1520},{"text":1519},"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":1522,"type":218,"tunes":1524},{"text":1523},"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":1526,"type":42,"tunes":1528},{"text":1527,"level":247},"Reranking: second-stage relevance refinement",{},{"id":522,"data":1530,"type":218,"tunes":1532},{"text":1531},"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":1534,"type":218,"tunes":1536},{"text":1535},"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":1538,"type":218,"tunes":1540},{"text":1539},"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":1542,"type":42,"tunes":1544},{"text":1543,"level":246},"Bi-encoder retrieval and cross-encoder reranking solve different cost problems",{},{"id":542,"data":1546,"type":362,"tunes":1572},{"content":1547,"stretched":43,"withHeadings":14},[1548,1552,1556,1560,1564,1568],[1549,1550,1551],"Property","Bi-encoder \u002F embedding retrieval","Cross-encoder-style reranking",[1553,1554,1555],"Encoding","Query and documents represented independently","Query and candidate processed jointly",[1557,1558,1559],"Document computation","Can be precomputed at ingest","Normally recomputed per query-candidate pair",[1561,1562,1563],"Corpus-scale search","Suitable with vector indexes","Usually too expensive across the entire corpus",[1565,1566,1567],"Typical role","High-recall candidate generation","High-precision ordering of a small candidate set",[1569,1570,1571],"Main trade-off","Fast and scalable but relevance interaction is compressed into vectors","Richer relevance judgment but higher latency\u002Fcost",{},{"id":571,"data":1574,"type":42,"tunes":1576},{"text":1575,"level":246},"A reranker cannot recover what retrieval missed",{},{"id":576,"data":1578,"type":218,"tunes":1580},{"text":1579},"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":1582,"type":218,"tunes":1584},{"text":1583},"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":1586,"type":226,"tunes":1589},{"body":1587,"title":1588,"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":1591,"type":42,"tunes":1593},{"text":1592,"level":247},"Hybrid retrieval is a separate design choice",{},{"id":598,"data":1595,"type":218,"tunes":1597},{"text":1596},"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":1599,"type":218,"tunes":1601},{"text":1600},"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":1603,"type":218,"tunes":1605},{"text":1604},"Reranking can then operate on the fused candidate set. Hybrid retrieval and reranking are therefore complementary but distinct stages.",{},{"id":613,"data":1607,"type":42,"tunes":1609},{"text":1608,"level":246},"BM25 is not obsolete because embeddings exist",{},{"id":618,"data":1611,"type":218,"tunes":1613},{"text":1612},"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":1615,"type":218,"tunes":1617},{"text":1616},"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":1619,"type":42,"tunes":1621},{"text":1620,"level":247},"Chunking changes what embeddings and rerankers can see",{},{"id":633,"data":1623,"type":218,"tunes":1625},{"text":1624},"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":1627,"type":218,"tunes":1629},{"text":1628},"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":1631,"type":42,"tunes":1633},{"text":1632,"level":247},"Do not compare retrieval scores as if they were universal probabilities",{},{"id":648,"data":1635,"type":218,"tunes":1637},{"text":1636},"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":1639,"type":218,"tunes":1641},{"text":1640},"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":1643,"type":42,"tunes":1645},{"text":1644,"level":247},"Evaluate retrieval stages separately",{},{"id":663,"data":1647,"type":362,"tunes":1675},{"content":1648,"stretched":43,"withHeadings":14},[1649,1653,1657,1660,1663,1665,1667,1671],[1650,1651,1652],"Layer","Useful question","Example metric or test",[1654,1655,1656],"Source coverage","Does the corpus contain the needed information?","Coverage audit \u002F known-answer source set",[675,1658,1659],"Is the needed evidence retrievable as a coherent unit?","Chunk-level support review",[1661,1662,681],"First-stage retrieval","Does the relevant item enter the candidate set?",[683,1664,685],"How high does relevant evidence appear?",[687,1666,689],"Does second-stage scoring improve ordering?",[1668,1669,1670],"Context selection","Do the final selected passages contain sufficient support?","Context relevance \u002F coverage",[1672,1673,1674],"Answer stage","Does the model use the selected evidence correctly?","Faithfulness \u002F claim-evidence evaluation",{},{"id":700,"data":1677,"type":218,"tunes":1679},{"text":1678},"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":1681,"type":42,"tunes":1683},{"text":1682,"level":247},"Which layer actually failed?",{},{"id":710,"data":1685,"type":373,"tunes":1710},{"rows":1686,"title":1702,"layout":362,"columns":1703},[1687,1690,1693,1696,1699],{"id":714,"label":1688,"values":1689},"Relevant document never appears",[344,344,344],{"id":718,"label":1691,"values":1692},"Relevant document appears too low",[344,344,344],{"id":722,"label":1694,"values":1695},"Semantically good but forbidden result",[344,344,344],{"id":726,"label":1697,"values":1698},"Relevant but outdated result",[344,344,344],{"id":730,"label":1700,"values":1701},"Correct result retrieved but omitted from prompt",[344,344,344],"Symptoms and likely retrieval layer",[1704,1706,1708],{"id":736,"label":1705},"Observed symptom",{"id":739,"label":1707},"Likely layer",{"id":742,"label":1709},"First diagnostic",{},{"id":746,"data":1712,"type":42,"tunes":1714},{"text":1713,"level":247},"Relevance and Source of Truth are different",{},{"id":751,"data":1716,"type":218,"tunes":1718},{"text":1717},"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":1720,"type":218,"tunes":1722},{"text":1721},"Where source authority matters, metadata filters, source classes, version rules and provenance should constrain retrieval before the result becomes model context.",{},{"id":761,"data":1724,"type":226,"tunes":1727},{"body":1725,"title":1726,"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":1729,"type":42,"tunes":1731},{"text":1730,"level":247},"Original implementation evidence",{},{"id":772,"data":1733,"type":42,"tunes":1735},{"text":1734,"level":246},"Source of Truth Research Engine: lexical and semantic retrieval are separate",{},{"id":777,"data":1737,"type":218,"tunes":1739},{"text":1738},"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":1741,"type":218,"tunes":1743},{"text":1742},"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":1745,"type":218,"tunes":1747},{"text":1746},"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":1749,"type":42,"tunes":1751},{"text":1750,"level":246},"Aaasaasa AI Client: Qdrant is a vector infrastructure component",{},{"id":797,"data":1753,"type":218,"tunes":1755},{"text":1754},"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":1757,"type":218,"tunes":1759},{"text":1758},"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":1761,"type":218,"tunes":1763},{"text":1762},"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":1765,"type":362,"tunes":1788},{"content":1766,"stretched":43,"withHeadings":14},[1767,1770,1773,1776,1779,1782,1785],[1768,1769],"Implementation evidence","What it demonstrates",[1771,1772],"SQLite FTS5\u002FBM25 in Source of Truth Research Engine","Lexical retrieval can exist independently of embeddings.",[1774,1775],"Local Ollama embeddings","Representation generation is its own stage.",[1777,1778],"Stored semantic vectors + cosine comparison","Semantic retrieval consumes embeddings after they have been produced.",[1780,1781],"Qdrant support in Aaasaasa AI Client","Vector storage\u002Fsearch is an infrastructure capability separate from the model provider.",[1783,1784],"Evidence\u002Fprovenance rules in Source of Truth Research Engine","Retrieved similarity does not equal authority or proof.",[1786,1787],"No claimed custom reranker in these implementations","Reranking is explained as an architectural stage, not falsely claimed as already implemented evidence.",{},{"id":838,"data":1790,"type":226,"tunes":1793},{"body":1791,"title":1792,"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":1795,"type":42,"tunes":1797},{"text":1796,"level":247},"When do you need each component?",{},{"id":849,"data":1799,"type":362,"tunes":1827},{"content":1800,"stretched":43,"withHeadings":14},[1801,1804,1807,1810,1813,1816,1818,1821,1824],[1802,1803],"Need","Likely component",[1805,1806],"Semantic similarity across different wording","Embedding model + vector similarity search",[1808,1809],"Efficient search over a large vector corpus","Vector index\u002Fdatabase or vector-capable search engine",[1811,1812],"Exact identifiers, error codes or rare terms","Lexical\u002Ffull-text retrieval such as BM25",[1814,1815],"Both exact terminology and semantic meaning","Hybrid lexical + semantic retrieval",[1817,372],"Candidate set is good but ordering is weak",[1819,1820],"Relevant items are absent from candidate set","Improve source coverage, chunking, retriever, filters or candidate count before reranking",[1822,1823],"Hard tenant\u002Fsource\u002Fversion constraints","Deterministic metadata\u002Fauthorization filtering",[1825,1826],"Small corpus","Potentially simple brute-force similarity or general-purpose database rather than dedicated vector DB",{},{"id":880,"data":1829,"type":42,"tunes":1831},{"text":1830,"level":247},"A practical retrieval design sequence",{},{"id":885,"data":1833,"type":314,"tunes":1866},{"steps":1834,"title":1865,"orientation":313},[1835,1838,1841,1844,1847,1850,1853,1856,1859,1862],{"label":1836,"description":1837},"1. Define the query types","Identify semantic questions, exact lookups, identifiers, current-state reads and domain-specific patterns.",{"label":1839,"description":1840},"2. Define eligible sources","Apply tenant, authorization, locale, version, source class and freshness constraints.",{"label":1842,"description":1843},"3. Establish lexical baseline","Measure whether simple full-text\u002FBM25 retrieval already solves much of the workload.",{"label":1845,"description":1846},"4. Add embeddings where semantic recall is needed","Choose and evaluate an embedding model against representative domain queries.",{"label":1848,"description":1849},"5. Choose vector storage\u002Findexing based on scale","Use brute force, database vector support or a dedicated vector engine according to requirements.",{"label":1851,"description":1852},"6. Evaluate first-stage recall","Confirm that relevant evidence enters a sufficiently large candidate set.",{"label":1854,"description":1855},"7. Add hybrid retrieval if signals are complementary","Fuse lexical and semantic rankings when both materially improve candidate generation.",{"label":1857,"description":1858},"8. Add reranking if ordering remains the bottleneck","Apply the stronger model only to the candidate set where its cost is justified.",{"label":1860,"description":1861},"9. Tune final context selection","Control redundancy, context budget, authority, diversity and evidence coverage before generation.",{"label":1863,"description":1864},"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":1868,"type":42,"tunes":1870},{"text":1869,"level":247},"Common misconceptions",{},{"id":926,"data":1872,"type":362,"tunes":1907},{"content":1873,"stretched":43,"withHeadings":14},[1874,1877,1880,1883,1886,1889,1892,1895,1898,1901,1904],[1875,1876],"Misconception","Correction",[1878,1879],"“An embedding is a vector database.”","An embedding is a representation; the database\u002Findex stores and searches representations.",[1881,1882],"“A vector database creates semantic meaning.”","The embedding model creates the representation; the vector system indexes and compares it.",[1884,1885],"“RAG requires a vector database.”","RAG requires retrieval, not a specific retrieval technology.",[1887,1888],"“Reranking is the same as vector search.”","Vector search generates candidates; reranking reorders a candidate set.",[1890,1891],"“Rerankers fix poor recall.”","They cannot promote a document that was never retrieved.",[1893,1894],"“Dense search replaces BM25.”","Lexical search remains valuable for exact terms, identifiers and specialized vocabulary.",[1896,1897],"“Higher similarity means more authoritative.”","Similarity and source authority are different dimensions.",[1899,1900],"“More top-k always improves RAG.”","Larger candidate sets can improve recall but add latency, noise and context-selection burden.",[1902,1903],"“One score threshold works everywhere.”","Scores depend on model, query, corpus and retrieval method and must be calibrated.",[1905,1906],"“A dedicated vector DB is always more advanced.”","It is only justified when its operational and retrieval capabilities match the requirements.",{},{"id":964,"data":1909,"type":42,"tunes":1911},{"text":1910,"level":247},"Edge cases and limitations",{},{"id":969,"data":1913,"type":218,"tunes":1915},{"text":1914},"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":1917,"type":218,"tunes":1919},{"text":1918},"Some corpora are so small that a full vector scan is acceptable. Approximate indexing adds complexity without meaningful benefit.",{},{"id":979,"data":1921,"type":218,"tunes":1923},{"text":1922},"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":1925,"type":218,"tunes":1927},{"text":1926},"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":1929,"type":218,"tunes":1931},{"text":1930},"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":1933,"type":42,"tunes":1935},{"text":1934,"level":247},"What would change this answer?",{},{"id":999,"data":1937,"type":218,"tunes":1939},{"text":1938},"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":1941,"type":218,"tunes":1943},{"text":1942},"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":1945,"type":218,"tunes":1947},{"text":1946},"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":1949,"type":42,"tunes":1951},{"text":1950,"level":247},"Related canonical knowledge",{},{"id":1019,"data":1953,"type":218,"tunes":1955},{"text":1954},"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":1957,"type":1030,"tunes":1962},{"url":1958,"title":1959,"excerpt":1960,"ctaLabel":1961},"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":1964,"type":218,"tunes":1966},{"text":1965},"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":1968,"type":1030,"tunes":1973},{"url":1969,"title":1970,"excerpt":1971,"ctaLabel":1972},"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":1975,"type":218,"tunes":1977},{"text":1976},"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":1979,"type":42,"tunes":1981},{"text":1980,"level":247},"Frequently asked questions",{},{"id":1056,"data":1983,"type":1056,"tunes":2010},{"items":1984,"title":2009},[1985,1988,1991,1994,1997,2000,2003,2006],{"id":1060,"answer":1986,"question":1987},"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":1989,"question":1990},"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":1992,"question":1993},"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":1995,"question":1996},"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":1998,"question":1999},"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":2001,"question":2002},"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":2004,"question":2005},"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":2007,"question":2008},"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":2012,"type":42,"tunes":2014},{"text":2013,"level":247},"Glossary",{},{"id":1099,"data":2016,"type":1099,"tunes":2052},{"title":2017,"entries":2018},"Key retrieval terms",[2019,2021,2024,2027,2030,2033,2035,2037,2039,2042,2044,2046,2048,2050],{"term":366,"anchor":365,"definition":2020},"A numerical representation of content produced by an embedding model for similarity, clustering, retrieval or related tasks.",{"term":2022,"anchor":1107,"definition":2023},"Dense vector","A vector representation in which many dimensions carry non-zero values, commonly used in semantic retrieval.",{"term":2025,"anchor":1111,"definition":2026},"Sparse vector","A high-dimensional representation in which most dimensions are zero, often preserving stronger token- or term-like structure.",{"term":2028,"anchor":1115,"definition":2029},"Vector index","A data structure that organizes vectors for efficient similarity or nearest-neighbor retrieval.",{"term":2031,"anchor":1119,"definition":2032},"Vector database","A storage\u002Fsearch system designed to manage vectors, associated metadata and vector retrieval workloads.",{"term":1122,"anchor":1123,"definition":2034},"Approximate nearest-neighbor search, which trades exact exhaustive comparison for faster retrieval at scale.",{"term":1126,"anchor":1127,"definition":2036},"Hierarchical Navigable Small World, a graph-based approximate nearest-neighbor indexing approach widely used for vector retrieval.",{"term":1130,"anchor":1131,"definition":2038},"A lexical relevance-ranking method based on term occurrence and corpus statistics, widely used in full-text search.",{"term":2040,"anchor":1135,"definition":2041},"Hybrid search","Retrieval that combines results or scores from multiple retrieval methods such as lexical and vector search.",{"term":687,"anchor":1138,"definition":2043},"A later retrieval stage that re-scores and reorders an already generated candidate set.",{"term":1141,"anchor":1142,"definition":2045},"An architecture that encodes query and candidate independently, enabling precomputation and scalable similarity search.",{"term":1145,"anchor":1146,"definition":2047},"A model that jointly processes a query and candidate text, often improving relevance judgment at higher computational cost.",{"term":681,"anchor":1149,"definition":2049},"The fraction of relevant items recovered within the top k retrieved candidates.",{"term":1152,"anchor":1153,"definition":2051},"Normalized Discounted Cumulative Gain, a ranking metric that rewards relevant results appearing higher in an ordered list.",{},{"id":1157,"data":2054,"type":42,"tunes":2056},{"text":2055,"level":247},"Conclusion",{},{"id":1162,"data":2058,"type":218,"tunes":2060},{"text":2059},"The clean retrieval model is simple: embeddings represent meaning, vector search retrieves candidates, and rerankers refine candidate ordering.",{},{"id":1167,"data":2062,"type":218,"tunes":2064},{"text":2063},"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":1172,"data":2066,"type":218,"tunes":2068},{"text":2067},"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":1177,"data":2070,"type":42,"tunes":2072},{"text":2071,"level":247},"Primary sources and implementation evidence",{},{"id":1182,"data":2074,"type":218,"tunes":2076},{"text":2075},"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":1187,"data":2078,"type":1194,"tunes":2082},{"link":1189,"meta":2079},{"image":2080,"title":1192,"description":2081},{"url":344},"Foundational paper demonstrating independently computable sentence embeddings for efficient semantic similarity search.",{},{"id":1197,"data":2084,"type":1194,"tunes":2089},{"link":1199,"meta":2085},{"image":2086,"title":2087,"description":2088},{"url":344},"Qdrant — Architecture and data structure overview","Official documentation describing collections, points, vectors, payload metadata and HNSW-based similarity indexing.",{},{"id":1206,"data":2091,"type":1194,"tunes":2095},{"link":1208,"meta":2092},{"image":2093,"title":1211,"description":2094},{"url":344},"Official vector-search documentation covering similarity queries, filtering, exact versus approximate search and dense\u002Fsparse behavior.",{},{"id":1215,"data":2097,"type":1194,"tunes":2101},{"link":1217,"meta":2098},{"image":2099,"title":1220,"description":2100},{"url":344},"Current documentation on dense\u002Fsparse vector retrieval, lexical\u002Fvector combinations and multi-stage search pipelines.",{},{"id":1224,"data":2103,"type":1194,"tunes":2108},{"link":1226,"meta":2104},{"image":2105,"title":2106,"description":2107},{"url":344},"Elastic — Semantic reranking","Current guidance defining semantic reranking as a later-stage relevance operation over a smaller candidate set.",{},{"id":1233,"data":2110,"type":1194,"tunes":2115},{"link":1235,"meta":2111},{"image":2112,"title":2113,"description":2114},{"url":344},"Cohere — Reranking with Cohere","Current documentation showing reranking as a second-stage improvement over lexical or semantic first-stage retrieval.",{},{"id":1242,"data":2117,"type":1194,"tunes":2121},{"link":1244,"meta":2118},{"image":2119,"title":1247,"description":2120},{"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":2125,"excerpt":1251},{"time":212,"blocks":2126,"version":1250},[2127,2130,2133,2136,2139,2142,2145,2148,2151,2154,2157,2160,2163,2166,2176,2179,2182,2185,2188,2206,2209,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,2315,2318,2321,2324,2327,2330,2333,2336,2339,2342,2345,2348,2351,2354,2357,2360,2363,2366,2369,2381,2384,2387,2405,2408,2411,2414,2417,2420,2423,2426,2429,2432,2435,2438,2441,2444,2455,2458,2461,2474,2477,2491,2494,2509,2512,2515,2518,2521,2524,2527,2530,2533,2536,2539,2542,2545,2548,2551,2554,2557,2560,2572,2575,2593,2596,2599,2602,2605,2608,2611,2616,2621,2626,2631,2636,2641],{"id":215,"data":2128,"type":218,"tunes":2129},{"text":217},{},{"id":221,"data":2131,"type":226,"tunes":2132},{"body":223,"title":224,"variant":225},{},{"id":229,"data":2134,"type":226,"tunes":2135},{"body":231,"title":232,"variant":233},{},{"id":236,"data":2137,"type":226,"tunes":2138},{"body":238,"title":239,"variant":240},{},{"id":243,"data":2140,"type":248,"tunes":2141},{"title":245,"maxLevel":246,"minLevel":247},{},{"id":251,"data":2143,"type":42,"tunes":2144},{"text":253,"level":247},{},{"id":256,"data":2146,"type":218,"tunes":2147},{"text":258},{},{"id":261,"data":2149,"type":218,"tunes":2150},{"text":263},{},{"id":266,"data":2152,"type":218,"tunes":2153},{"text":268},{},{"id":271,"data":2155,"type":42,"tunes":2156},{"text":273,"level":247},{},{"id":276,"data":2158,"type":218,"tunes":2159},{"text":278},{},{"id":281,"data":2161,"type":218,"tunes":2162},{"text":283},{},{"id":286,"data":2164,"type":218,"tunes":2165},{"text":288},{},{"id":291,"data":2167,"type":314,"tunes":2175},{"steps":2168,"title":312,"orientation":313},[2169,2170,2171,2172,2173,2174],{"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":2177,"type":42,"tunes":2178},{"text":319,"level":247},{},{"id":322,"data":2180,"type":218,"tunes":2181},{"text":324},{},{"id":327,"data":2183,"type":218,"tunes":2184},{"text":329},{},{"id":332,"data":2186,"type":218,"tunes":2187},{"text":334},{},{"id":337,"data":2189,"type":373,"tunes":2205},{"rows":2190,"title":361,"layout":362,"columns":2201},[2191,2193,2195,2197,2199],{"id":341,"label":342,"values":2192},[344,344,344],{"id":346,"label":347,"values":2194},[344,344,344],{"id":350,"label":351,"values":2196},[344,344,344],{"id":354,"label":355,"values":2198},[344,344,344],{"id":358,"label":359,"values":2200},[344,344,344],[2202,2203,2204],{"id":365,"label":366},{"id":368,"label":369},{"id":371,"label":372},{},{"id":376,"data":2207,"type":42,"tunes":2208},{"text":378,"level":247},{},{"id":381,"data":2210,"type":218,"tunes":2211},{"text":383},{},{"id":386,"data":2213,"type":218,"tunes":2214},{"text":388},{},{"id":391,"data":2216,"type":218,"tunes":2217},{"text":393},{},{"id":396,"data":2219,"type":42,"tunes":2220},{"text":398,"level":246},{},{"id":401,"data":2222,"type":218,"tunes":2223},{"text":403},{},{"id":406,"data":2225,"type":218,"tunes":2226},{"text":408},{},{"id":411,"data":2228,"type":42,"tunes":2229},{"text":413,"level":246},{},{"id":416,"data":2231,"type":218,"tunes":2232},{"text":418},{},{"id":421,"data":2234,"type":218,"tunes":2235},{"text":423},{},{"id":426,"data":2237,"type":42,"tunes":2238},{"text":428,"level":246},{},{"id":431,"data":2240,"type":218,"tunes":2241},{"text":433},{},{"id":436,"data":2243,"type":218,"tunes":2244},{"text":438},{},{"id":441,"data":2246,"type":226,"tunes":2247},{"body":443,"title":444,"variant":233},{},{"id":447,"data":2249,"type":42,"tunes":2250},{"text":449,"level":247},{},{"id":452,"data":2252,"type":218,"tunes":2253},{"text":454},{},{"id":457,"data":2255,"type":218,"tunes":2256},{"text":459},{},{"id":462,"data":2258,"type":218,"tunes":2259},{"text":464},{},{"id":467,"data":2261,"type":42,"tunes":2262},{"text":469,"level":246},{},{"id":472,"data":2264,"type":218,"tunes":2265},{"text":474},{},{"id":477,"data":2267,"type":218,"tunes":2268},{"text":479},{},{"id":482,"data":2270,"type":218,"tunes":2271},{"text":484},{},{"id":487,"data":2273,"type":42,"tunes":2274},{"text":489,"level":246},{},{"id":492,"data":2276,"type":218,"tunes":2277},{"text":494},{},{"id":497,"data":2279,"type":218,"tunes":2280},{"text":499},{},{"id":502,"data":2282,"type":42,"tunes":2283},{"text":504,"level":246},{},{"id":507,"data":2285,"type":218,"tunes":2286},{"text":509},{},{"id":512,"data":2288,"type":218,"tunes":2289},{"text":514},{},{"id":517,"data":2291,"type":42,"tunes":2292},{"text":519,"level":247},{},{"id":522,"data":2294,"type":218,"tunes":2295},{"text":524},{},{"id":527,"data":2297,"type":218,"tunes":2298},{"text":529},{},{"id":532,"data":2300,"type":218,"tunes":2301},{"text":534},{},{"id":537,"data":2303,"type":42,"tunes":2304},{"text":539,"level":246},{},{"id":542,"data":2306,"type":362,"tunes":2314},{"content":2307,"stretched":43,"withHeadings":14},[2308,2309,2310,2311,2312,2313],[546,547,548],[550,551,552],[554,555,556],[558,559,560],[562,563,564],[566,567,568],{},{"id":571,"data":2316,"type":42,"tunes":2317},{"text":573,"level":246},{},{"id":576,"data":2319,"type":218,"tunes":2320},{"text":578},{},{"id":581,"data":2322,"type":218,"tunes":2323},{"text":583},{},{"id":586,"data":2325,"type":226,"tunes":2326},{"body":588,"title":589,"variant":590},{},{"id":593,"data":2328,"type":42,"tunes":2329},{"text":595,"level":247},{},{"id":598,"data":2331,"type":218,"tunes":2332},{"text":600},{},{"id":603,"data":2334,"type":218,"tunes":2335},{"text":605},{},{"id":608,"data":2337,"type":218,"tunes":2338},{"text":610},{},{"id":613,"data":2340,"type":42,"tunes":2341},{"text":615,"level":246},{},{"id":618,"data":2343,"type":218,"tunes":2344},{"text":620},{},{"id":623,"data":2346,"type":218,"tunes":2347},{"text":625},{},{"id":628,"data":2349,"type":42,"tunes":2350},{"text":630,"level":247},{},{"id":633,"data":2352,"type":218,"tunes":2353},{"text":635},{},{"id":638,"data":2355,"type":218,"tunes":2356},{"text":640},{},{"id":643,"data":2358,"type":42,"tunes":2359},{"text":645,"level":247},{},{"id":648,"data":2361,"type":218,"tunes":2362},{"text":650},{},{"id":653,"data":2364,"type":218,"tunes":2365},{"text":655},{},{"id":658,"data":2367,"type":42,"tunes":2368},{"text":660,"level":247},{},{"id":663,"data":2370,"type":362,"tunes":2380},{"content":2371,"stretched":43,"withHeadings":14},[2372,2373,2374,2375,2376,2377,2378,2379],[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":2382,"type":218,"tunes":2383},{"text":702},{},{"id":705,"data":2385,"type":42,"tunes":2386},{"text":707,"level":247},{},{"id":710,"data":2388,"type":373,"tunes":2404},{"rows":2389,"title":733,"layout":362,"columns":2400},[2390,2392,2394,2396,2398],{"id":714,"label":715,"values":2391},[344,344,344],{"id":718,"label":719,"values":2393},[344,344,344],{"id":722,"label":723,"values":2395},[344,344,344],{"id":726,"label":727,"values":2397},[344,344,344],{"id":730,"label":731,"values":2399},[344,344,344],[2401,2402,2403],{"id":736,"label":737},{"id":739,"label":740},{"id":742,"label":743},{},{"id":746,"data":2406,"type":42,"tunes":2407},{"text":748,"level":247},{},{"id":751,"data":2409,"type":218,"tunes":2410},{"text":753},{},{"id":756,"data":2412,"type":218,"tunes":2413},{"text":758},{},{"id":761,"data":2415,"type":226,"tunes":2416},{"body":763,"title":764,"variant":233},{},{"id":767,"data":2418,"type":42,"tunes":2419},{"text":769,"level":247},{},{"id":772,"data":2421,"type":42,"tunes":2422},{"text":774,"level":246},{},{"id":777,"data":2424,"type":218,"tunes":2425},{"text":779},{},{"id":782,"data":2427,"type":218,"tunes":2428},{"text":784},{},{"id":787,"data":2430,"type":218,"tunes":2431},{"text":789},{},{"id":792,"data":2433,"type":42,"tunes":2434},{"text":794,"level":246},{},{"id":797,"data":2436,"type":218,"tunes":2437},{"text":799},{},{"id":802,"data":2439,"type":218,"tunes":2440},{"text":804},{},{"id":807,"data":2442,"type":218,"tunes":2443},{"text":809},{},{"id":812,"data":2445,"type":362,"tunes":2454},{"content":2446,"stretched":43,"withHeadings":14},[2447,2448,2449,2450,2451,2452,2453],[816,817],[819,820],[822,823],[825,826],[828,829],[831,832],[834,835],{},{"id":838,"data":2456,"type":226,"tunes":2457},{"body":840,"title":841,"variant":240},{},{"id":844,"data":2459,"type":42,"tunes":2460},{"text":846,"level":247},{},{"id":849,"data":2462,"type":362,"tunes":2473},{"content":2463,"stretched":43,"withHeadings":14},[2464,2465,2466,2467,2468,2469,2470,2471,2472],[853,854],[856,857],[859,860],[862,863],[865,866],[868,372],[870,871],[873,874],[876,877],{},{"id":880,"data":2475,"type":42,"tunes":2476},{"text":882,"level":247},{},{"id":885,"data":2478,"type":314,"tunes":2490},{"steps":2479,"title":918,"orientation":313},[2480,2481,2482,2483,2484,2485,2486,2487,2488,2489],{"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":2492,"type":42,"tunes":2493},{"text":923,"level":247},{},{"id":926,"data":2495,"type":362,"tunes":2508},{"content":2496,"stretched":43,"withHeadings":14},[2497,2498,2499,2500,2501,2502,2503,2504,2505,2506,2507],[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":2510,"type":42,"tunes":2511},{"text":966,"level":247},{},{"id":969,"data":2513,"type":218,"tunes":2514},{"text":971},{},{"id":974,"data":2516,"type":218,"tunes":2517},{"text":976},{},{"id":979,"data":2519,"type":218,"tunes":2520},{"text":981},{},{"id":984,"data":2522,"type":218,"tunes":2523},{"text":986},{},{"id":989,"data":2525,"type":218,"tunes":2526},{"text":991},{},{"id":994,"data":2528,"type":42,"tunes":2529},{"text":996,"level":247},{},{"id":999,"data":2531,"type":218,"tunes":2532},{"text":1001},{},{"id":1004,"data":2534,"type":218,"tunes":2535},{"text":1006},{},{"id":1009,"data":2537,"type":218,"tunes":2538},{"text":1011},{},{"id":1014,"data":2540,"type":42,"tunes":2541},{"text":1016,"level":247},{},{"id":1019,"data":2543,"type":218,"tunes":2544},{"text":1021},{},{"id":1024,"data":2546,"type":1030,"tunes":2547},{"url":1026,"title":1027,"excerpt":1028,"ctaLabel":1029},{},{"id":1033,"data":2549,"type":218,"tunes":2550},{"text":1035},{},{"id":1038,"data":2552,"type":1030,"tunes":2553},{"url":1040,"title":1041,"excerpt":1042,"ctaLabel":1043},{},{"id":1046,"data":2555,"type":218,"tunes":2556},{"text":1048},{},{"id":1051,"data":2558,"type":42,"tunes":2559},{"text":1053,"level":247},{},{"id":1056,"data":2561,"type":1056,"tunes":2571},{"items":2562,"title":1091},[2563,2564,2565,2566,2567,2568,2569,2570],{"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":2573,"type":42,"tunes":2574},{"text":1096,"level":247},{},{"id":1099,"data":2576,"type":1099,"tunes":2592},{"title":1101,"entries":2577},[2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591],{"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":687,"anchor":1138,"definition":1139},{"term":1141,"anchor":1142,"definition":1143},{"term":1145,"anchor":1146,"definition":1147},{"term":681,"anchor":1149,"definition":1150},{"term":1152,"anchor":1153,"definition":1154},{},{"id":1157,"data":2594,"type":42,"tunes":2595},{"text":1159,"level":247},{},{"id":1162,"data":2597,"type":218,"tunes":2598},{"text":1164},{},{"id":1167,"data":2600,"type":218,"tunes":2601},{"text":1169},{},{"id":1172,"data":2603,"type":218,"tunes":2604},{"text":1174},{},{"id":1177,"data":2606,"type":42,"tunes":2607},{"text":1179,"level":247},{},{"id":1182,"data":2609,"type":218,"tunes":2610},{"text":1184},{},{"id":1187,"data":2612,"type":1194,"tunes":2615},{"link":1189,"meta":2613},{"image":2614,"title":1192,"description":1193},{"url":344},{},{"id":1197,"data":2617,"type":1194,"tunes":2620},{"link":1199,"meta":2618},{"image":2619,"title":1202,"description":1203},{"url":344},{},{"id":1206,"data":2622,"type":1194,"tunes":2625},{"link":1208,"meta":2623},{"image":2624,"title":1211,"description":1212},{"url":344},{},{"id":1215,"data":2627,"type":1194,"tunes":2630},{"link":1217,"meta":2628},{"image":2629,"title":1220,"description":1221},{"url":344},{},{"id":1224,"data":2632,"type":1194,"tunes":2635},{"link":1226,"meta":2633},{"image":2634,"title":1229,"description":1230},{"url":344},{},{"id":1233,"data":2637,"type":1194,"tunes":2640},{"link":1235,"meta":2638},{"image":2639,"title":1238,"description":1239},{"url":344},{},{"id":1242,"data":2642,"type":1194,"tunes":2645},{"link":1244,"meta":2643},{"image":2644,"title":1247,"description":1248},{"url":344},{},"Post erfolgreich abgerufen",{"items":2648,"source":2733,"manualIds":2734,"manualMatchedIds":2735},[2649,2656,2663,2670,2677,2684,2691,2698,2705,2712,2719,2726],{"id":2650,"slug":2651,"title":2652,"excerpt":2653,"featuredImage":2654,"publishedAt":2655},"490","rbac-vs-tenant-isolation-two-different-security-boundaries","RBAC vs Isolamento dei Tenant: Due Confini di Sicurezza Diversi","Il controllo RBAC stabilisce cosa può fare un utente; l'isolamento dei tenant stabilisce a quali risorse di quale tenant può accedere tale azione. Scopri perché la sicurezza SaaS multi-tenant richiede entrambi i confini.","\u002Fuploads\u002F2026\u002F10\u002Frbac-vs-tenant-isolation-two-different-security-boundaries-1791485111528-qqtzby.webp","2026-10-08T14:43:00.000Z",{"id":2657,"slug":2658,"title":2659,"excerpt":2660,"featuredImage":2661,"publishedAt":2662},"467","the-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers","Il confine della validità della risposta: il livello mancante tra rilevanza e risposte AI affidabili","Una fonte può essere pertinente, autorevole e comunque errata per la domanda posta. Il livello mancante è l'applicabilità: le condizioni alle quali una risposta è valida e i cambiamenti che ne impongono una riconsiderazione. Questo articolo introduce l'Answer Validity Boundary come modello di progettazione delle fonti per esseri umani, ricerca AI e sistemi RAG.","\u002Fuploads\u002F2026\u002F09\u002Fthe-answer-validity-boundary-the-missing-layer-between-relevance-and-reliable-ai-answers-1790272901306-1g5jly.webp","2026-09-24T11:59:00.000Z",{"id":2664,"slug":2665,"title":2666,"excerpt":2667,"featuredImage":2668,"publishedAt":2669},"485","enterprise-ai-architecture-what-changes-when-ai-enters-a-company","Architettura AI aziendale: cosa cambia quando l'AI entra in un'azienda","L'architettura AI aziendale spiega come l'AI cambia i sistemi aziendali attraverso autorità sui dati, identità, permessi, fornitori, rischio, governance, valutazione, conformità e operazioni.","\u002Fuploads\u002F2026\u002F10\u002Fenterprise-ai-architecture-what-changes-when-ai-enters-a-company-1791478161363-czrwaq.webp","2026-10-08T10:48:00.000Z",{"id":2671,"slug":2672,"title":2673,"excerpt":2674,"featuredImage":2675,"publishedAt":2676},"488","what-is-context-engineering-what-the-model-receives-before-it-answers","Che cos'è l'ingegneria del contesto? Ciò che il modello riceve prima di rispondere","L'ingegneria del contesto progetta quali informazioni un modello di IA riceve prima dell'inferenza, inclusi prompt, recupero, memoria, stato dell'applicazione, risultati degli strumenti e cronologia delle conversazioni.","\u002Fuploads\u002F2026\u002F10\u002Fwhat-is-context-engineering-what-the-model-receives-before-it-answers-1791480653258-018kcv.webp","2026-10-08T13:29:00.000Z",{"id":2678,"slug":2679,"title":2680,"excerpt":2681,"featuredImage":2682,"publishedAt":2683},"468","ai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context","La memoria dell'agente IA non è RAG: come separare memoria, recupero, stato e contesto","Memoria dell'agente, RAG, stato e contesto vengono spesso usati come se fossero intercambiabili. Non lo sono. Questo pratico modello architetturale separa i quattro livelli, mostra dove si colloca ciascuno e spiega cosa si rompe quando i sistemi li fanno collassare in uno solo.","\u002Fuploads\u002F2026\u002F09\u002Fai-agent-memory-is-not-rag-how-to-separate-memory-retrieval-state-and-context-1790350560308-np0xy6.webp","2026-09-25T11:34:00.000Z",{"id":2685,"slug":2686,"title":2687,"excerpt":2688,"featuredImage":2689,"publishedAt":2690},"364","tipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung","Padroneggiare il Flusso di Lavoro SEO: Strategie di Ottimizzazione Essenziali per la Crescita Organica","Un flusso di lavoro SEO strutturato è fondamentale per una crescita organica sostenibile. Scopri le dieci strategie fondamentali, dalla ricerca di parole chiave e dall'ottimizzazione tecnica alla qualità dei contenuti e all'analisi delle prestazioni.","\u002Fuploads\u002F2026\u002F03\u002Ftipps-fuer-die-verbesserung-der-seo-suchmaschinenoptimierung-1774866098131-hwkzrg.webp","2024-01-26T06:35:00.000Z",{"id":2692,"slug":2693,"title":2694,"excerpt":2695,"featuredImage":2696,"publishedAt":2697},"481","generative-ai-explained-models-retrieval-tools-and-applications-are-not-the-same-thing","L'IA generativa spiegata: modelli, recupero, strumenti e applicazioni non sono la stessa cosa","L'IA generativa è più di un modello. Scopri come modelli, recupero, strumenti, contesto, runtime e applicazioni si integrano nei sistemi di IA in produzione.","\u002Fuploads\u002F2026\u002F10\u002Fgenerative-ai-explained-models-retrieval-tools-and-applications-are-not-the-same-thing-1791475411822-pp0dvz.webp","2026-10-08T12:00:00.000Z",{"id":2699,"slug":2700,"title":2701,"excerpt":2702,"featuredImage":2703,"publishedAt":2704},"494","air-gapped-ai-how-ai-systems-work-without-internet-or-cloud-access","AI Air-Gapped: Come funzionano i sistemi di IA senza Internet o accesso al cloud","L'IA air-gapped esegue modelli, RAG e applicazioni di IA all'interno di un dominio di sicurezza isolato senza dipendenze da internet o dal cloud. Scopri come modelli, dati, aggiornamenti e strumenti operano offline.","\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":2706,"slug":2707,"title":2708,"excerpt":2709,"featuredImage":2710,"publishedAt":2711},"484","what-is-an-ai-platform-architect-models-data-runtime-security-and-operations","Che cos'è un architetto di piattaforme AI? Modelli, dati, runtime, sicurezza e operazioni","Un Architetto di Piattaforme AI progetta fondamenta AI riutilizzabili attraverso modelli, fornitori, recupero, agenti, identità, sicurezza, valutazione, osservabilità e operazioni.","\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":2713,"slug":2714,"title":2715,"excerpt":2716,"featuredImage":2717,"publishedAt":2718},"486","source-of-truth-in-ai-systems-where-reliable-knowledge-actually-comes-from","Fonte di verità nei sistemi di IA: da dove proviene realmente la conoscenza affidabile","Una Fonte di Verità definisce quale fonte è autorevole per un fatto o uno stato specifico. Scopri come si differenzia da RAG, provenienza, memoria, contesto, database vettoriali e sistemi di registrazione.","\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":2720,"slug":2721,"title":2722,"excerpt":2723,"featuredImage":2724,"publishedAt":2725},"363","front-und-backend-entwicklung","Sviluppo Front-end e Backend","Lo sviluppo front-end e back-end è una parte essenziale dello sviluppo web e comporta la creazione di applicazioni web e siti web. Lo sviluppo front-end si concentra sull'interfaccia utente, mentre lo sviluppo back-end è responsabile della programmazione e della gestione del lato server.","\u002Fuploads\u002F2026\u002F03\u002Ffront-und-backend-entwicklung-1774872219531-wyu4i1.webp","2023-04-12T11:11:00.000Z",{"id":2727,"slug":2728,"title":2729,"excerpt":2730,"featuredImage":2731,"publishedAt":2732},"472","why-more-context-can-make-ai-answers-worse","Perché più contesto può peggiorare le risposte dell'IA","Una finestra di contesto più ampia non garantisce una risposta migliore. Questo articolo spiega come la diluizione del segnale, le prove contrastanti, lo stato obsoleto, la sensibilità alla posizione e la compressione con perdita possano ridurre l'affidabilità dell'IA—e introduce un pratico Context Pressure Test.","\u002Fuploads\u002F2026\u002F09\u002Fwhy-more-context-can-make-ai-answers-worse-1790351615793-2ntv2v.webp","2026-09-25T11:51:00.000Z","fallback",[],[]]