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
Pubblicare un MCP Server in GitHub MCP Registry
Creare comandi nella dashboard .NET Aspire
Integrare email esterne con Azure Functions e Managed Connectors
Validare i dati di una colonna JSON in SQL Server
Importare repository da Bitbucket a GitHub Enterprise Cloud
Integrare Agenti A2A in Azure API Management
.NET Aspire vs Dapr: differenze, sovrapposizioni e integrazione
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Nuove validazioni Form Blazor
Semplificare i deployment con le label in Azure Container App
Global Azure 2026 - ASPItalia.com
Usare la parola chiave field per semplificare la scrittura di proprietà in C#


