Costruire un motore di ricerca ibrido dentro PostgreSQL
Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.
Un corso video di freeCodeCamp mostra come unire BM25 testuale e embedding vettoriali nello stesso database per evitare cluster esterni e mantenere garanzie ACID.
FreeCodeCamp pubblica su YouTube un corso che costruisce un motore di ricerca ibrido interamente in PostgreSQL: keyword e vettori, una sola base dati, niente cluster esterni da mantenere1.
La scelta che molti affrontano è netta. Filtri testuali semplici dentro il database. Oppure un sistema separato, per esempio Elasticsearch, con sincronizzazioni e operatività più complesse. Il corso propone un’altra strada: restare in PostgreSQL e fondere ricerca lessicale e semantica in SQL, con transazioni e indici nello stesso luogo1.
Le query non chiedono tutte la stessa cosa. “Apollo 13” vuole un matching di parole chiave. “Animali che fanno luce da soli” esprime un concetto senza nominare la bioluminescenza. L’approccio ibrido esegue entrambe le strategie e unisce i risultati con Reciprocal Rank Fusion scritta in SQL. L’utente vede una sola lista ordinata1.
Il progetto usa Simple English Wikipedia come dataset, circa 240.000 voci. La componente testuale adotta un ranking BM25 tarato sul corpus. La componente semantica memorizza embedding a 384 dimensioni. La fusione avviene nel database con RRF, definita in SQL. Il tutto gira in un’unica istanza PostgreSQL, senza uscire dal perimetro del DBMS1.
Pipeline completa, sempre nello stesso sistema. Inserimento e normalizzazione dei documenti. Configurazione della ricerca testuale per il ranking. Archiviazione dei vettori densi. Logica di fusione tra i due ranking. Ogni passaggio resta in SQL, con dati e indici che vivono e si aggiornano insieme1.
Il beneficio operativo è concreto. Si evitano infrastrutture esterne e pipeline di sincronizzazione. Si mantengono proprietà ACID anche per la componente di ricerca. Le scelte architetturali restano visibili e controllabili in SQL: dall’indicizzazione alla fusione dei risultati1.
Per chi lavora già con PostgreSQL, il corso offre un percorso replicabile. Un corpus enciclopedico per test realistici. BM25 per la parte lessicale. Vettori a 384 dimensioni per la parte semantica. RRF in SQL come collante. Il risultato copre richieste che puntano alla precisione dei termini e richieste che mirano al significato, con una sola pipeline nel database1.
Adozione consigliata quando bisogna ridurre dipendenze e sincronizzazioni, mantenendo in un unico luogo dati, indici e logica di ranking. Il corso include esempi e query pronti, utili per portare questo modello in ambienti che già usano PostgreSQL1.
Un dettaglio pratico chiude il cerchio: la logica di fusione in SQL permette di calibrare pesi e soglie senza cambiare infrastruttura. Si sperimenta in locale, si misura sul corpus, si regola il ranking. Poi si porta in produzione senza aggiungere nuovi sistemi1.
Fonti
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici
Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:
- Fedeltà alle fonti. Un secondo passaggio toglie ogni affermazione che le fonti non sostengono. Valutazione su questo pezzo: 8,5/10.
- Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale: superato.
- Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica. Questo articolo ha preso 7,9/10 dopo 2 revisioni.
I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.
Per vedere Millebit nelle notizie principali di Google, aggiungilo alle tue fonti preferite. Oppure segui l’edizione di oggi, il feed RSS o La Sintesi.