Indexación de contenido y metadatos de archivos mediante Azure AI Search

Azure AI Search
Azure Blob Storage
Azure Table Storage

En este artículo se muestra cómo crear un servicio de búsqueda que permita a los usuarios buscar documentos basados en el contenido del documento, además de los metadatos asociados a los archivos.

Puede implementar este servicio mediante varios indexadores en Azure AI Search.

En este artículo se usa una carga de trabajo de ejemplo para demostrar cómo crear un único índice de búsqueda basado en archivos de Azure Blob Storage. Los metadatos del archivo se almacenan en Azure Table Storage.

Architecture

Diagrama que muestra una arquitectura que permite la búsqueda basada en el contenido y los metadatos de archivos.

Descargue un archivo de PowerPoint de esta arquitectura.

Flujo de datos

  1. Los archivos se almacenan en Blob Storage, posiblemente junto con una cantidad limitada de metadatos (por ejemplo, el autor del documento).
  2. Los metadatos adicionales se almacenan en Table Storage, lo que puede almacenar significativamente más información para cada documento.
  3. Un indexador lee el contenido de cada archivo, junto con los metadatos de blob, y almacena los datos en el índice de búsqueda.
  4. Otro indexador lee los metadatos adicionales de la tabla y los almacena en el mismo índice de búsqueda.
  5. Se envía una consulta de búsqueda al servicio de búsqueda. La consulta devuelve documentos coincidentes, en función del contenido del documento y de los metadatos del documento.

Componentes

  • Blob Storage proporciona almacenamiento en la nube rentable para los datos de archivos, incluidos los datos en formatos como PDF, HTML y CSV, y en archivos de Microsoft 365.
  • Table Storage proporciona almacenamiento para datos estructurados no relacionales. En este escenario, se usa para almacenar los metadatos de cada documento.
  • Azure AI Search es un servicio de búsqueda totalmente administrado que proporciona infraestructura, API y herramientas para crear una experiencia de búsqueda enriquecida.

Alternativas

En este escenario se usan indexadores en Azure AI Search para detectar automáticamente contenido nuevo en orígenes de datos admitidos, como blob y table storage y, a continuación, agregarlo al índice de búsqueda. Como alternativa, puede usar las API proporcionadas por Azure AI Search para insertar datos en el índice de búsqueda. Sin embargo, si lo hace, debe escribir código para insertar los datos en el índice de búsqueda y también para analizar y extraer texto de los documentos binarios que desea buscar. El indexador de Blob Storage admite muchos formatos de documento, lo que simplifica significativamente el proceso de extracción e indexación de texto.

Además, si usa indexadores, opcionalmente puede enriquecer los datos como parte de una canalización de indexación. Por ejemplo, puede usar los Servicios de Azure AI para usar el reconocimiento óptico de caracteres (OCR) o el análisis visual de imágenes en documentos, detectar el idioma de los documentos o traducir documentos. También puede definir sus propias aptitudes personalizadas para enriquecer los datos de maneras relevantes para su escenario empresarial.

Esta arquitectura usa Blob y Table Storage porque son rentables y eficientes. Este diseño también habilita el almacenamiento combinado de los documentos y metadatos en una sola cuenta de almacenamiento. Entre los orígenes de datos admitidos alternativos para los propios documentos se incluyen Azure Data Lake Storage y Azure Files. Los metadatos del documento se pueden almacenar en cualquier otro origen de datos compatible que contenga datos estructurados, como Azure SQL Database y Azure Cosmos DB.

Detalles del escenario

Búsqueda de contenido de archivo

Esta solución permite a los usuarios buscar documentos basados en contenido y metadatos de archivo adicionales que se almacenan por separado para cada documento. Además de buscar el contenido de texto de un documento, es posible que un usuario quiera buscar el autor del documento, el tipo de documento (como papel o informe) o su impacto empresarial (alto, medio o bajo).

Azure AI Search es un servicio de búsqueda totalmente administrado que puede crear índices de búsqueda que contengan la información que desea permitir a los usuarios buscar.

Dado que los archivos que se buscan en este escenario son documentos binarios, puede almacenarlos en Blob Storage. Si lo hace, puede usar el indexador de Blob Storage integrado en Azure AI Search para extraer automáticamente texto de los archivos y agregar su contenido al índice de búsqueda.

Búsqueda de metadatos de archivo

Si desea incluir información adicional sobre los archivos, puede asociar directamente metadatos a los blobs, sin usar un almacén independiente. El indexador de búsqueda integrado de Blob Storage puede incluso leer estos metadatos y colocarlos en el índice de búsqueda. Esto permite a los usuarios buscar metadatos junto con el contenido del archivo. Sin embargo, la cantidad de metadatos se limita a 8 KB por blob, por lo que la cantidad de información que puede colocar en cada blob es bastante pequeña. Puede optar por almacenar solo la información más crítica directamente en los blobs. En este escenario, solo el autor del documento se almacena en el blob.

Para superar esta limitación de almacenamiento, puede colocar metadatos adicionales en otro origen de datos que tenga un indexador compatible, como Table Storage. Puede agregar el tipo de documento, el impacto empresarial y otros valores de metadatos como columnas independientes en la tabla. Si configura el indexador integrado de Table Storage para que tenga como destino el mismo índice de búsqueda que el indexador de blobs, los metadatos de Blob y Table Storage se combinan para cada documento del índice de búsqueda.

Uso de varios orígenes de datos para un único índice de búsqueda

Para asegurarse de que ambos indizadores apuntan al mismo documento en el índice de búsqueda, la clave de documento del índice de búsqueda se establece en un identificador único del archivo. A continuación, este identificador único se usa para hacer referencia al archivo en ambos orígenes de datos. El indexador de blobs usa metadata_storage_path como clave de documento, de forma predeterminada. La propiedad metadata_storage_path almacena la dirección URL completa del archivo en Blob Storage, por ejemplo, https://contoso.blob.core.windows.net/files/paper/Resilience in Azure.pdf. El indexador realiza la codificación Base64 en el valor para asegurarse de que no hay caracteres no válidos en la clave del documento. El resultado es una clave de documento única, como aHR0cHM6...mUucGRm0.

Si agrega el metadata_storage_path como una columna en Table Storage, sabe exactamente a qué blob pertenecen los metadatos de las otras columnas, por lo que puede usar cualquier valor PartitionKey y RowKey en la tabla. Por ejemplo, podría usar el nombre del contenedor de blobs como PartitionKey y la dirección URL completa codificada en Base64 del blob como RowKey, lo que garantiza que tampoco hay caracteres no válidos en estas claves.

A continuación, puede usar una asignación de campos en el indexador de tabla para asignar la metadata_storage_path columna (u otra columna) de Table Storage al metadata_storage_path campo de clave del documento en el índice de búsqueda. Si aplica la función base64Encode en la asignación de campos, termina con la misma clave de documento (aHR0cHM6...mUucGRm0 en el ejemplo anterior) y los metadatos de Table Storage se agregan al mismo documento que se extrajo de Blob Storage.

Nota:

La documentación del indexador de tablas indica que no debe definir una asignación de campos a un campo de cadena único alternativo en la tabla. Esto se debe a que el indexador concatena PartitionKey y RowKey como clave de documento de forma predeterminada. Dado que ya se basa en la clave de documento tal como la configura el indexador de blobs (que es la dirección URL completa codificada en Base64 del blob), la creación de una asignación de campos para asegurarse de que ambos indexadores hacen referencia al mismo documento en el índice de búsqueda es adecuada y se admite para este escenario.

Como alternativa, puede asignar RowKey (que se establece en la dirección URL completa codificada en Base64 del blob) directamente a la clave de documento metadata_storage_path, sin almacenarla por separado y codificarla en Base64 como parte de la asignación de campos. Sin embargo, mantener la dirección URL sin codificar en una columna independiente aclara a qué blob hace referencia y le permite elegir cualquier partición y claves de fila sin afectar al indexador de búsqueda.

Posibles casos de uso

Este escenario se aplica a las aplicaciones que requieren la capacidad de buscar documentos en función de su contenido y metadatos adicionales.

Consideraciones

Estas consideraciones implementan los pilares del Azure Well-Architected Framework, que es un conjunto de principios rectores que puede utilizar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Confiabilidad

La confiabilidad garantiza que tu aplicación puede cumplir los compromisos contraídos con los clientes. Para más información, consulte Resumen del pilar de fiabilidad.

La Búsqueda de Azure AI proporciona un Acuerdo de nivel de servicio (SLA) elevado para las lecturas (consultas) si tiene al menos dos réplicas. Proporciona un Acuerdo de Nivel de Servicio elevado para las actualizaciones (actualizando los índices de búsqueda) si tiene al menos tres réplicas. Por lo tanto, debe aprovisionar al menos dos réplicas si desea que los clientes puedan realizar búsquedas de forma confiable, y tres si los cambios en el índice también se consideran operaciones de alta disponibilidad.

Azure Storage siempre almacena varias copias de los datos para ayudar a protegerlos frente a eventos planeados y no planeados. Azure Storage proporciona opciones de redundancia adicionales para replicar datos entre regiones. Estas medidas de seguridad se aplican a los datos de Blob y Table Storage.

Seguridad

La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.

Azure AI Search proporciona controles de seguridad sólidos que le ayudan a implementar la seguridad de red, la autenticación y la autorización, la residencia y la protección de datos, y los controles administrativos que le ayudan a mantener la seguridad, la privacidad y el cumplimiento.

Siempre que sea posible, use la autenticación de Microsoft Entra para proporcionar acceso al propio servicio de búsqueda y conecte el servicio de búsqueda a otros recursos de Azure (como Blob y Table Storage en este escenario) mediante una identidad administrada.

Puede conectarse desde el servicio de búsqueda a la cuenta de almacenamiento mediante un punto de conexión privado. Cuando se usa un punto de conexión privado, los indexadores pueden usar una conexión privada sin necesidad de que el almacenamiento de blobs y tablas sea accesible públicamente.

Optimización de costos

La optimización de costos trata de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

Para obtener información sobre los costos de ejecutar este escenario, consulte esta estimación preconfigurada en la calculadora de precios de Azure. Todos los servicios descritos aquí se configuran en esta estimación. La estimación es para una carga de trabajo que tiene un tamaño total de documento de 20 GB en Blob Storage y 1 GB de metadatos en Table Storage. Se usan dos unidades de búsqueda para satisfacer el Acuerdo de Nivel de Servicio con fines de lectura, como se describe en la sección Confiabilidad de este artículo. Para ver cómo cambiarían los precios en su caso concreto, cambie las variables pertinentes para que coincidan con el uso esperado.

Si revisa la estimación, puede ver que el costo del almacenamiento de blobs y tablas es relativamente bajo. La mayoría del costo se incurre en Azure AI Search, ya que realiza la indexación real y el proceso para ejecutar consultas de búsqueda.

Implementación de este escenario

Para implementar esta carga de trabajo de ejemplo, consulte Indexación de contenido y metadatos de archivos en Azure AI Search. Puede usar esta muestra para:

  • Cree los servicios de Azure necesarios.
  • Cargar algunos documentos de ejemplo en Blob Storage.
  • Rellenar el valor de metadatos del autor en el blob.
  • Almacenar los valores de metadatos de tipo de documento e impacto empresarial en Table Storage.
  • Crear los indexadores que mantienen el índice de búsqueda.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

  • Jelle Druyts | Ingeniero principal de Experiencia del cliente

Otro colaborador:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes