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.
![](https://www.cloudnativeitalia.com/script/images/194.jpg)
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.
![](https://www.cloudnativeitalia.com/script/images/194_2.jpg)
L'ultimo passaggio non prevede niente di diverso dagli altri data source e ci consente di impostare l'indexer e quando deve lavorare.
![](https://www.cloudnativeitalia.com/script/images/194_3.jpg)
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.
![](https://www.cloudnativeitalia.com/script/images/194_4.jpg)
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Filtering sulle colonne in una QuickGrid di Blazor
Generare velocemente pagine CRUD in Blazor con QuickGrid
Miglioramenti nell'accessibilità con Angular CDK
Utilizzare Model as a Service su Microsoft Azure
Creare gruppi di client per Event Grid MQTT
Eseguire le GitHub Actions offline
Inizializzare i container in Azure Container Apps
Creazione di componenti personalizzati in React.js con Tailwind CSS
Utilizzare Azure Cosmos DB con i vettori
Migliora le tue soluzioni ASP.NET Core con Azure OpenAI
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Eseguire attività pianificate con Azure Container Jobs