Azure Cosmos DB è un servizio di database distribuito a livello globale offerto da Microsoft, progettato per garantire scalabilità elevata e bassa latenza. Supporta diversi modelli di dati, tra cui documenti, grafi e chiavi-valori, permettendo agli sviluppatori di scegliere l'approccio più adatto alle loro applicazioni. Grazie alla sua architettura multi-master e al supporto per replicazione automatica dei dati, offre disponibilità continua e prestazioni ottimizzate in tutto il mondo.
Uno degli aspetti più interessanti di Cosmos DB è la capacità di indicizzare automaticamente tutto il contenuto dei documenti, permettendo di effettuare ricerche puntuali e altamente performanti su qualsiasi campo del documento, senza dover definire indici manualmente. Tuttavia, questa indicizzazione automatica è ottimizzata per ricerche di tipo strutturato, mentre non è ideale per ricerche testuali avanzate che richiedono elaborazioni più complesse come la tokenizzazione o il calcolo della rilevanza.
Per risolvere questa limitazione, Azure Cosmos DB per NoSQL ha introdotto una nuova funzionalità di Full Text Search, attualmente in preview, pensata per potenziare la capacità di ricerca nei dati. Questo strumento offre funzionalità avanzate di elaborazione testuale, come la tokenizzazione, la rimozione di parole comuni e lo stemming, rendendo le ricerche più efficienti grazie a un indice testuale specializzato.
La funzione di ricerca testuale integra un meccanismo di scoring basato sull?algoritmo BM25, che valuta la pertinenza dei documenti rispetto a una query. Questo approccio è ideale per scenari come e-commerce, gestione dei contenuti, supporto clienti e applicazioni AI multi-agente.
Per abilitare la Full Text Search è necessario seguire alcuni passaggi. Prima di tutto, occorre registrare la funzionalità abilitando l?opzione nell?interfaccia di Azure Cosmos DB. Successivamente, è necessario configurare una politica di full text a livello di container, specificando i percorsi dei campi testuali e la lingua, come nell'immagine.

Una volta definita la politica, occorre aggiornare la configurazione dell?indice aggiungendo un fullTextIndex ai percorsi desiderati. Questo permette di eseguire query ibride che combinano la ricerca testuale con altri filtri come mostrato nell'esempio seguente per il campo text.
"fullTextIndexes": [
{
"path": "/text"
}
]Per ottenere i primi 10 documenti contenenti la parola ?wifi? nel campo text, si possono utilizzare alcune funzioni di ricerca:
- FullTextContains: verifica se una stringa è contenuta in un campo testuale specifico;
- FullTextContainsAll: verifica se tutte le stringhe specificate sono presenti;
- FullTextContainsAny: restituisce true se almeno una delle stringhe è contenuta;
- FullTextScore: ordina i risultati per pertinenza.
Di seguito un esempio di query.
SELECT TOP 10 * FROM c WHERE FullTextContains(c.text, "wifi")
Questa nuova funzionalità rende Azure Cosmos DB una piattaforma ancora più potente per gestire grandi volumi di dati testuali, offrendo prestazioni elevate e maggiore precisione nelle ricerche. Al momento, il supporto è limitato alla lingua inglese, con il codice "en-US" come unica opzione disponibile per la configurazione della lingua.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Rendere affidabile lo scale out su Azure App Service
Esporre un server MCP esistente con Azure API Management
Gestire codice JavaScript con code splitting e lazy loading
Come automatizzare il download dei report di billing da GitHub Enterprise
Esporre tool MCP con Azure Functions
Configuratione e utilizzo .NET Aspire CLI
Eliminare record doppi in Sql Server
Gestire progetti NPM in .NET Aspire
Analizzare il contenuto di una issue con GitHub Models e AI
Response streaming con Blazor e .NET 10
Semplificare i deployment con le label in Azure Container App
Gestire il routing HTTP in Azure Container App




