Nel mondo cloud di Microsoft i blob di Azure Storage sono lo strumento principale da usare per depositare file in modo sicuro, affidabile e scalabile. Si accedono via REST e con qualsiasi linguaggio, hanno uno spazio infinito (o quasi) e sono ampiamenti sfruttati dall'infrastruttura stessa.
Sulla stessa piattaforma, Azure Search è invece lo strumento dedicato ad indicizzare e offrire API REST per effettuare ricerche, suggerire e categorizzare documenti in senso lato. Entrambi gli strumenti possono essere usati congiuntamente perché non solo Azure Search è in grado di ricevere contenuti con uno schema da noi indicato, ma anche disporre di indexer che vadano a pescare contenuti dai blob stessi. Il motore è in grado infatti di indicizzare i contenuti di file come PDF, DOCX, XSLX, ZIP, XML e HTML, per citarne alcuni, e catturarne i metadati principali, come il titolo, l'autore e la lingua.
Collegare uno storage alla ricerca è ancora più facile. E' sufficiente recarsi sullo storage di riferimento e accedere alla sezione Add Azure Search. Ci viene proposto il servizio di Search da collegare, che deve già esistere.

Il wizard ci porta poi a selezionare lo storage e il container da indicizzare, eventualmente filtrando per cartella. Possiamo decidere se indicizzare solo i metadati o anche il contenuto. Se siamo certi del tipo di file possiamo indicare anche il parsing mode, su JSON o Plain text, altrimenti lasciamo il default che lascia il compito al motore di capire il tipo di parser più adatto.

Dopo un'analisi del container, il quale deve obbligatoriamente avere uno o più file campione, ci viene proposto il tipo di indice che verrà creato: il nome, la chiave di riferimento (il path del blob) e i cambi individuati con il tipo di operazione che vogliamo supportare.

Come ultimo step dobbiamo configurare l'indexer, cioè con quale frequenza indicizzare i nuovi blob o quelli cambiati, operazione effettuata tramite il LastModifiedDate del blob.

Fatta quest'ultima operazione non ci resta che andare nella sezione Azure Search e vedere che sono stati creati un index, un indexer e un data source. Possiamo procedere a più indexer per ottenere più potenza e partizionare i documenti da processare.

Premendo sull'indexer possiamo forzare l'esecuzione del motore, mentre accedendo all'index possiamo procedere ad un'interrogazione dell'indice.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Creare automaticamente una issue di GitHub
Effettuare il download di un file via FTP con la libreria FluentFTP di .NET
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Inizializzare i container in Azure Container Apps
Eseguire operazioni con timeout in React
Installare le Web App site extension tramite una pipeline di Azure DevOps
Impostare dinamicamente il nome di una run di un workflow di GitHub
Effettuare l'upload di un file via FTP con la libreria FluentFTP di .NET
Gestire condizioni complesse in JavaScript
Eseguire attività basate su eventi con Azure Container Jobs
Generare file PDF da Blazor WebAssembly con iText
Gestire undefined e partial nelle reactive forms di Angular
I più letti di oggi
- .NET Conference Italia 2023 - Milano e Online
- Utilizzare database e servizi con gli add-on di Container App
- Evitare la script injection nelle GitHub Actions
- Reactive form tipizzati con modellazione del FormBuilder in Angular
- Eseguire attività basate su eventi con Azure Container Jobs
- Eseguire query verso tipi non mappati in Entity Framework Core
- Utilizzare le collection expression in C#
- Registrare servizi multipli tramite chiavi in ASP.NET Core 8
- Reactive form tipizzati con FormBuilder in Angular