Azure Search è il servizio della piattaforma cloud di Microsoft che ci permette di indicizzare contenuti testuali e poterli ricercare con tutti i vantaggi di un motore full-text, come la comprensione della lingua, la gestione degli errori di battitura e il suggerimento in compilazione.
Tra i numerosi connettori, cioè i motori in grado di alimentare Azure Search, troviamo anche il supporto a Cosmos DB. Come sempre dobbiamo creare il data source, l'index e l'indexer, partendo dall'istanza di Search oppure da Cosmos DB dove troviamo una sezione dedicata. Il primo passo richiede di selezionare l'istanza di Search da alimentare, mentre il secondo è dedicato alla definizione della sorgente.
In questa parte è importante estrapolare solo i dati necessari da essere indicizzati, per tenere più leggero ed efficiente possibile l'indice, oltre che a limitare i costi. Selezionato il database e il container, quindi, dobbiamo specificare la query (con SQL API attualmente) facendo attenzione ad estrapolare valori primitivi o array, ma non oggetti.

Possiamo notare l'uso di un filtro c._ts >= @HighWaterMark e relativo ordinamento per facilitare l'indexer nel compito. Grazie a quel campo sa estrapolare solo gli item effettivamente cambiati o aggiungi e ottimizzare il lavoro.
Al passaggio successivo, grazie alla query specificata, possiamo trovare già popolati i campi e specificare l'analyzer specifico per ogni lingua.

L'ultimo passaggio non prevede niente di diverso dagli altri data source e ci consente di impostare l'indexer e quando deve lavorare.

Il motore è in grado anche di monitorare gli elementi cancellati ma per farlo è necessario implementare il soft delete, cioè indicare il nome di un campo e il valore che deve assumere, invece che rimuovere l'elemento dal container.

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Tenere sotto controllo la working directory di un self-hosted agent di Azure DevOps
Serializzare un enum come stringa con System.Text.Json
ASP.NET Core & Blazor 6
Autenticazione basata su certificati con ASP.NET Core
Effettuare un loop di una GitHub Action
Monitorare e prevenire problemi in produzione
Usare l'option pattern per gestire la configurazione in ASP.NET Core
Conversione di tipo in una pipeline di Azure DevOps
Accedere alla console di una Azure Container App
It's a (.NET) Serverless World
Code generator con C#
Blazor PWA e Offline-First
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- YARP: un reverse proxy in ASP.NET Core
- Whidbey, Yukon e Longhorn su MSDN