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
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Effettuare il pull di git LFS in un workflow di GitHub
Assegnare un valore di default a un parametro di una lambda in C#
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Utilizzare la session affinity con Azure Container Apps
Limitare le richieste lato server con l'interactive routing di Blazor 8
Miglioramenti nelle performance di Angular 16
Sfruttare al massimo i topic space di Event Grid MQTT
Definire lo stile CSS in base alle dimensioni del container
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Utilizzare un service principal per accedere a Azure Container Registry