Extraer metadatos de imágenes y documentos con Azure Search y Cognitive Search

Ayer, durante la keynote del evento Microsoft Connect, Seth Juarez mostró una demo súper sencilla e interesante que te permite recuperar metadatos de imágenes y documentos, haciendo uso de Azure Search y de su integración con Cognitive Search, todavía en preview. En este post quiero mostrarte la demo que hizo Seth un poco más despacio 🙂

Lo primero que necesitas son imágenes o documentos subidos en Azure Storage. En mi ejemplo he creado tres containers con tipos diferentes de archivo: recibos, pdfs e imágenes.

 pdfs, pictures and receipts

He subido algunos archivos a cada uno de ellos para que puedan ser procesados. Ahora crea desde el portal un servicio de tipo Azure Search.

Create a resource – Azure Search

Para crear este servicio necesitas un nombre que formará parte de tu URL, el grupo de recursos donde quieres alojarlo, la localización (en qué datacenter de Microsoft Azure quieres que esté) y el pricing tier (yo para este ejemplo he utilizado el Basic). Una vez creado el servicio, necesitar indexar los archivos. Para ello haz clic en la opción Import data del menú que se encuentra en el apartado Overview.

Azure Search – Import Data

Al pulsarlo aparecerá un asistente con diferentes secciones, que tendrás que hacerlo tantas veces como contenedores quieras añadir. En Data Source básicamente tienes que elegir el tipo de almacenamiento, en este caso Azure Storage, y el contenedor donde están los archivos que quieres procesar.

Azure Search – Import data – Blob Storage

En Cognitive Search es donde ocurre la magia. Dependiendo del tipo de archivo que estemos procesando, podemos habilitar una serie de skills u otros. Para las imágenes podemos seleccionar todos, ya que podemos encontrarnos gente, nombre de organizaciones, localizaciones, palabras, etcétera.

Azure Search – Cognitive Search

En el apartado Customize target index, por simplicidad, selecciona todas las opciones para todos los campos. Aquí tienes más información de para qué sirve cada uno de ellos y si deberías habilitarlos todos (seguro que no ;-), pero esta no es la parte importante hoy).

Azure Search -Customize target index

Para finalizar, en el último apartado solamente debes poner un nombre al indexador e indicar con qué frecuencia se lanzará el mismo en busca de nuevos archivos.

Azure Search – Indexer

Dependiendo de la cantidad de archivos que tengas dentro de tu cuenta de almacenamiento tardará más o menos en estar listo. En cualquier caso, cuando comiencen a indexarse podrás verlo en el apartado indexes:

Azure Search – Indexed files

Una vez que ya tengas contenido sobre el que buscar, haz clic sobre el botón Search Explorer y añade cualquier palabra clave que sabes que puede estar en alguna de las imágenes o documentos. En mi caso, como sé que he subido fotos que contienen motos simplemente he escrito motorbike 🙂

Azure Search – Search Explorer

Para probar tu servicio en algo más parecido a una aplicación, existe esta página que te permite generar de manera automática una página HTML con el código necesario para trabajar con la librería AzSearch.js.

Generate a sample search app

El resultado sería el siguiente:

AzSearch.js – AzSearch Generator

¡Saludos!