Detección de cambios y eliminaciones mediante indexadores para Azure Storage en Búsqueda de Azure AI

Nota:

Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.

Importante

Estas características y funcionalidades admiten conexiones a otros servicios de servicios Microsoft y de terceros. El uso de estos servicios está sujeto a sus respectivos términos y podría dar lugar a procesamiento o almacenamiento de datos fuera del límite de cumplimiento de Azure, así como a los datos que fluyen a los límites de cumplimiento de Azure.

Es su responsabilidad gestionar si sus datos saldrán fuera de los límites geográficos y de cumplimiento normativo de su organización, así como cualquier implicación relacionada, y garantizar que se hayan establecido los permisos, límites y aprobaciones adecuados.

Es responsable de revisar y probar cuidadosamente las aplicaciones que compile en el contexto de sus casos de uso específicos y de tomar todas las decisiones y personalizaciones adecuadas. Esto incluye implementar sus propias mitigaciones de IA responsables, como metaprompts, filtros de contenido u otros sistemas de seguridad, y garantizar que las aplicaciones cumplan los estándares de calidad, confiabilidad, seguridad y confiabilidad adecuados. Para obtener más información, consulte la nota de transparencia Búsqueda de Azure AI.

Después de crear un índice de búsqueda inicial, es posible que desee que los trabajos posteriores del indexador solo recojan documentos nuevos y modificados. En el caso del contenido indexado que se origina en Azure Storage, la detección de cambios se produce automáticamente porque los indexadores siguen la última actualización mediante las marcas de tiempo integradas en objetos y archivos de Azure Storage.

Aunque la detección de cambios es una obviedad, la detección de eliminaciones no lo es. Un indexador no realiza el seguimiento de la eliminación de objetos en orígenes de datos. Para evitar tener documentos de búsqueda huérfanos, puede implementar una estrategia de "eliminación temporal" que primero elimina los documentos de búsqueda y, después, realiza la eliminación física en Azure Storage como segundo paso.

Hay dos maneras de implementar una estrategia de eliminación temporal:

La estrategia de detección de eliminación debe aplicarse desde la primera ejecución del indexador. Si no estableció la directiva de eliminación antes de la ejecución inicial, los documentos que se eliminaron antes de implementar la directiva permanecen en el índice, incluso si agrega la directiva al indexador más adelante y la restablece. Si esto se ha producido, se recomienda crear un nuevo índice mediante un nuevo indexador, asegurándose de que la directiva de eliminación está en vigor desde el principio.

Prerrequisitos

  • Use un indexador de Azure Storage para Blob Storage, Table Storage, File Storage o Data Lake Storage Gen2.

  • Use claves de documento y una estructura de archivos coherentes. El cambio de claves de documento o nombres de directorio y rutas de acceso (se aplica a ADLS Gen2) interrumpe la información de seguimiento interna que usan los indexadores para saber qué contenido se indexó y cuándo se indexó por última vez.

Nota:

ADLS Gen2 permite cambiar el nombre de los directorios. Cuando se cambia el nombre de un directorio, las marcas de tiempo de los blobs de ese directorio no se actualizan. Como resultado, el indexador no vuelve a indexar esos blobs. Si necesita que los blobs de un directorio se vuelvan a indexar después de cambiar el nombre de un directorio porque ahora tienen nuevas direcciones URL, debe actualizar la LastModified marca de tiempo de todos los blobs del directorio para que el indexador sepa volver a indexarlos durante una ejecución futura. No se pueden cambiar los directorios virtuales de Azure Blob Storage, por lo que no tienen este problema.

Eliminación temporal de blobs nativos

Para este enfoque de detección de eliminación, Búsqueda de Azure AI depende de la característica de eliminación temporal de blobs nativos de Azure Blob Storage para determinar si los blobs han pasado a un estado de eliminación temporal. Cuando se detectan blobs en este estado, un indexador de búsqueda usa esta información para quitar el documento correspondiente del índice.

Requisitos para la eliminación temporal nativa

  • Los blobs deben estar en un contenedor de Azure Blob Storage, incluido el contenedor de blobs de ADLS Gen2. La política de eliminación suave de blobs nativos de Búsqueda de Azure AI no es compatible con Azure Files.

  • Habilitación de la eliminación temporal para blobs.

  • Las claves de los documentos del índice deben asignarse a una propiedad de blob o a metadatos de blob (por ejemplo, "metadata_storage_path").

  • Para configurar la compatibilidad con la eliminación temporal, debe utilizar la API de REST o la configuración del origen de datos del indexador de Azure Portal.

  • El control de versiones de blobs no debe estar habilitado en la cuenta de almacenamiento. De lo contrario, la eliminación temporal nativa no será compatible con el diseño.

Configuración de la eliminación temporal nativa

En Blob Storage, al habilitar la eliminación suave conforme a los requisitos, establezca la política de retención en un valor mucho mayor que el intervalo del indexador. Si hay algún problema al ejecutar el indexador o si tiene un gran número de documentos para indexar, el indexador tendrá mucho tiempo para procesar los blobs eliminados temporalmente. Los indexadores de Búsqueda de Azure AI eliminan un documento del índice solo si procesan el blob mientras se encuentra en un estado de eliminación suave.

En Búsqueda de Azure AI, establece una directiva de detección de eliminación temporal de blobs nativos en el origen de datos. Puede hacerlo desde el Azure Portal o mediante la API de REST. En las instrucciones siguientes se explica cómo establecer la directiva de detección de eliminación en Azure Portal o por medio de las API REST.

  1. Vaya al servicio de búsqueda en Azure Portal.

  2. En la página Información general del servicio Búsqueda de Azure AI, ve a Nuevo origen de datos, un editor visual para especificar una definición de origen de datos.

    En la captura de pantalla siguiente se muestra dónde puede encontrar esta característica en Azure Portal.

    Recorte de pantalla de la configuración del origen de datos en el asistente Importar datos.

  3. En el formulario Nuevo origen de datos, rellene los campos necesarios, active la casilla Seguimiento de eliminaciones y elija Eliminación temporal de blobs nativos. A continuación, seleccione Guardar para habilitar la característica en la creación del origen de datos.

    Recorte de pantalla de la eliminación temporal nativa del origen de datos del portal.

Reindexación de blobs recuperados con directivas de eliminación temporal nativas

Si restaura un blob eliminado temporalmente en Blob Storage, el indexador no siempre lo volverá a indexar. Esto se debe a que el indexador utiliza la marca de tiempo LastModified del blob para determinar si es necesaria la indexación. Cuando se recupera un blob de eliminación temporal, su marca de tiempo LastModified no se actualiza, por lo que, si el indexador ya ha procesado blobs con marcas de tiempo LastModified más recientes, no volverá a indexar el blob recuperado.

Para asegurarse de que un blob no eliminado se vuelva a indexar, actualice la marca de tiempo del LastModified blob. Una forma de hacerlo consiste en volver a guardar los metadatos de ese blob. No es necesario cambiar los metadatos, pero si vuelve a guardar estos, se actualizará la marca de tiempo LastModified del blob para que el indexador sepa que se deben reindexar de nuevo.

Estrategia de eliminación temporal mediante metadatos personalizados

Este método usa los metadatos personalizados para indicar si un documento de búsqueda se debe eliminar del índice. Requiere dos acciones independientes: la eliminación del documento de búsqueda del índice, seguida de la eliminación de archivos en Azure Storage.

Esta característica ya está disponible con carácter general.

Hay pasos que se deben seguir tanto en Azure Storage como en Búsqueda de Azure AI, pero no hay otras dependencias de características.

  1. En Azure Storage, agregue un par clave-valor de metadatos personalizados al archivo para indicar que el archivo está marcado para su eliminación. Por ejemplo, podría asignar un nombre a la propiedad "IsDeleted", establecida en false. Si desea eliminar el archivo, cámbielo a true.

  2. En Búsqueda de Azure AI, edita la definición del origen de datos para incluir una propiedad "dataDeletionDetectionPolicy". Por ejemplo, la siguiente directiva considera que un archivo se va a eliminar si tiene una propiedad de metadatos IsDeleted con el valor true:

    PUT https://[service name].search.windows.net/datasources/file-datasource?api-version=2026-04-01
    {
        "name" : "file-datasource",
        "type" : "azurefile",
        "credentials" : { "connectionString" : "<your storage connection string>" },
        "container" : { "name" : "my-share", "query" : null },
        "dataDeletionDetectionPolicy" : {
            "@odata.type" :"#Microsoft.Azure.Search.SoftDeleteColumnDeletionDetectionPolicy",
            "softDeleteColumnName" : "IsDeleted",
            "softDeleteMarkerValue" : "true"
        }
    }
    
  3. Ejecute el indexador. Después de que el indexador haya procesado el archivo y eliminado el documento del índice de búsqueda, puede eliminar el archivo físico en Azure Storage.

Reindexación de blobs y archivos recuperados

Puede revertir una eliminación temporal si el archivo de código fuente original todavía existe físicamente en Azure Storage.

  1. Cambie "softDeleteMarkerValue" : "false" en el blob o archivo en Azure Storage.

  2. Compruebe que la marca de tiempo LastModified del blob o el archivo sea más reciente que la de la última ejecución del indexador. Puede forzar una actualización a la fecha y hora actuales guardando de nuevo los metadatos.

  3. Ejecute el indexador.

Limitaciones

Ni la eliminación temporal nativa de blobs ni la eliminación temporal mediante metadatos personalizados se aplican cuando se usan escenarios de indexación uno a varios. Para eliminar la entrada del documento, debe enviar una solicitud de eliminación al índice mediante la operación de eliminación de la API REST.

Pasos siguientes