Indexación de datos de Azure Files
Importante
El indexador de Azure Files se encuentra actualmente en versión preliminar pública según los Términos de uso complementarios. Use una API de REST versión preliminar para crear el origen de datos del indexador.
En este artículo, aprenderá a configurar un indexador que importa contenido de Azure Files y hace que se pueda buscar en Azure AI Search. Las entradas en el indexador son los archivos, en un solo recurso compartido. La salida es un índice de búsqueda con contenido que se puede buscar y metadatos almacenados en campos individuales.
Para configurar y ejecutar el indexador, puede usar lo siguiente:
- API de REST de la versión preliminar del servicio Search, cualquier versión preliminar.
- Un paquete del SDK de Azure, cualquier versión.
- El Asistente para la importación de datos en Azure Portal.
- El Asistente para la importación y vectorización de datos en Azure Portal.
Requisitos previos
Azure Files, nivel optimizado para transacciones.
Un recurso compartido de archivos SMB que proporciona el contenido de origen. No se admiten los recursos compartidos de archivos de NFS.
Archivos que contienen texto. Si tiene datos binarios, puede incluir el enriquecimiento con inteligencia artificial para el análisis de imágenes.
Permisos de lectura en Azure Storage. Una cadena de conexión de "acceso completo" incluye una clave que concede acceso al contenido.
Use un cliente REST para formular llamadas REST similares a las que se muestran en este artículo.
Tareas admitidas
Puede usar este indexador para las siguientes tareas:
- Indexación de datos e indexación incremental: el indexador puede indexar archivos y metadatos asociados desde tablas. Detecta archivos y metadatos nuevos y actualizados a través de la detección de cambios integrada. Puede configurar la actualización de datos según una programación o a petición.
- Detección de eliminación: el indexador puede detectar eliminaciones a través de metadatos personalizados.
- Inteligencia artificial aplicada mediante conjuntos de aptitudes: los Conjuntos de aptitudes son totalmente compatibles con el indexador. Aquí se incluyen características clave como la vectorización integrada que agrega los pasos de fragmentación e inserción de datos.
- Modos de análisis: el indizador admite modos de análisis JSON si desea analizar matrices o líneas JSON en documentos de búsqueda individuales. También admite el modo de análisis de Markdown.
- Compatibilidad con otras características: el indexador está diseñado para funcionar sin problemas con otras características del indexador, como sesiones de depuración, caché del indexador para enriquecimientos incrementales y almacén de conocimiento.
Formatos de documento admitidos
El indexador de Azure Files puede extraer texto de los siguientes formatos de documento:
- CSV (consulte Indexación de blobs CSV)
- EML
- EPUB
- GZ
- HTML
- JSON (vea Indexación de blobs JSON)
- KML (XML para representaciones geográficas)
- Formatos de Microsoft Office: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (correos electrónicos de Outlook), XML (WORD XML 2003 y 2006)
- Formatos de Open Document: ODT, ODS, ODP
- Archivos de texto sin formato (vea también Indexing plain text (Indexación de texto sin formato))
- RTF
- XML
- ZIP
Cómo se indexan Azure Files
De manera predeterminada, la mayoría de los archivos se indexan como un único documento de búsqueda en el índice, incluidos los archivos con contenido estructurado, como JSON o CSV, que se indexan como un único fragmento de texto.
Un documento compuesto o insertado (por ejemplo, un archivo ZIP o un documento de Word con correo electrónico de Outlook insertado que contiene datos adjuntos, o un archivo .MSG con datos adjuntos) también se indexa como un solo documento. Por ejemplo, todas las imágenes extraídas de los datos adjuntos de un archivo MSG se devolverán en el campo normalized_images. Si tiene imágenes, considere la posibilidad de agregar el enriquecimiento con IA para obtener más utilidades de búsqueda a partir de ese contenido.
El contenido textual de un documento se extrae en un campo de cadena denominado "content". También puede extraer metadatos estándar y definidos por el usuario.
Definición del origen de datos
La definición del origen de datos especifica los datos que se indexan, las credenciales y las directivas para identificar los cambios en los datos. Un origen de datos se define como un recurso independiente de forma que puedan usarlo varios indexadores.
Puede usar 2020-06-30-preview o posterior para "type": "azurefile"
. Se recomienda la API de versión preliminar más reciente.
Crear un origen de datos para establecer su definición mediante una API en versión preliminar para "type":
"azurefile"
.POST /datasources?api-version=2024-05-01-preview { "name" : "my-file-datasource", "type" : "azurefile", "credentials" : { "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<account key>;" }, "container" : { "name" : "my-file-share", "query" : "<optional-directory-name>" } }
Establezca "type" en
"azurefile"
(obligatorio).Establezca "credentials" en una cadena de conexión de Azure Storage. En la sección siguiente se describen los formatos admitidos.
Establezca "container" en el recurso compartido de archivos raíz y use "query" para especificar las subcarpetas.
Una definición de origen de datos también puede incluir directivas de eliminación temporal, si quiere que el indexador elimine un documento de búsqueda cuando el documento de origen esté marcado para su eliminación.
Credenciales y cadenas de conexión admitidas
Los indexadores pueden conectarse a un recurso compartido de archivos mediante las siguientes conexiones.
Cadena de conexión de la cuenta de almacenamiento de acceso total |
---|
{ "connectionString" : "DefaultEndpointsProtocol=https;AccountName=<your storage account>;AccountKey=<your account key>;" } |
Para obtener la cadena de conexión de la página Cuenta de almacenamiento en Azure Portal, seleccione Claves de acceso en el panel de navegación izquierdo. Asegúrese de seleccionar una cadena de conexión completa y no solo una clave. |
Adición de campos de búsqueda a un índice
En el índice de búsqueda, agregue campos para aceptar el contenido y los metadatos de los archivos de Azure.
Crear o actualizar un índice para definir campos de búsqueda que almacenarán el contenido y los metadatos del archivo.
POST /indexes?api-version=2024-07-01 { "name" : "my-search-index", "fields": [ { "name": "ID", "type": "Edm.String", "key": true, "searchable": false }, { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false }, { "name": "metadata_storage_name", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true }, { "name": "metadata_storage_path", "type": "Edm.String", "searchable": false, "filterable": true, "sortable": true }, { "name": "metadata_storage_size", "type": "Edm.Int64", "searchable": false, "filterable": true, "sortable": true }, { "name": "metadata_storage_content_type", "type": "Edm.String", "searchable": true, "filterable": true, "sortable": true } ] }
Cree un campo de clave de documento ("key": true). Para el contenido de los blobs, los mejores candidatos son las propiedades de metadatos. Las propiedades de metadatos suelen incluir caracteres, como
/
y-
, que no son válidos para las claves de documento. El indexador codifica automáticamente la propiedad de metadatos de clave, sin que se requiera ninguna configuración ni asignación de campos.metadata_storage_path
(valor predeterminado) es la ruta de acceso completa al objeto o archivometadata_storage_name
utilizable solo si los nombres son únicosPropiedad de metadatos personalizada que se agrega a los blobs. Esta opción requiere que el proceso de carga de blobs agregue dicha propiedad de metadatos a todos los blobs. Dado que la clave es una propiedad obligatoria, todos los blobs a los que les falte esa propiedad no se indexarán. Si usa una propiedad de metadatos personalizada como clave, evite realizar cambios en esa propiedad. Los indexadores agregarán documentos duplicados para el mismo blob si cambia la propiedad de clave.
Agregue un campo "content" para almacenar el texto extraído de cada archivo mediante la propiedad "content" del blob. No es necesario usar este nombre, pero, si lo hace, podrá aprovechar las asignaciones de campos implícitas.
Agregue campos para las propiedades de metadatos estándar. En la indexación de archivos, las propiedades de metadatos estándar son las mismas que las propiedades de metadatos de blob. El indexador de Azure Files crea automáticamente asignaciones de campos internas para estas propiedades que convierten los nombres de propiedad con guion en nombres de propiedad con subrayado. Todavía tiene que agregar los campos que quiere usar para la definición de índice, pero puede omitir la creación de asignaciones de campos en el origen de datos.
- metadata_storage_name (
Edm.String
): nombre del archivo. Por ejemplo, si tiene un archivo /my-share/my-folder/subfolder/resume.pdf, el valor de este campo esresume.pdf
. - metadata_storage_path (
Edm.String
): URI completo del archivo, incluida la cuenta de almacenamiento. Por ejemplo:https://myaccount.file.core.windows.net/my-share/my-folder/subfolder/resume.pdf
- metadata_storage_content_type (
Edm.String
): tipo de contenido tal como especifica el código que usó para cargar el archivo. Por ejemplo,application/octet-stream
. - metadata_storage_last_modified (
Edm.DateTimeOffset
): última marca de tiempo modificada del archivo. Azure AI Search usa esta marca de tiempo para identificar los archivos modificados, con el fin de no tener que volver a indexar todo después de la indexación inicial. - metadata_storage_size (
Edm.Int64
): tamaño del archivo en bytes. - metadata_storage_content_md5 (
Edm.String
): hash MD5 del contenido del archivo, si está disponible. - metadata_storage_sas_token (
Edm.String
): un token de SAS temporal que pueden usar las aptitudes personalizadas para obtener acceso al archivo. Este token no se debe almacenar para su uso posterior, ya que podría expirar.
- metadata_storage_name (
Configuración y ejecución del indexador de Azure Files
Una vez creados el índice y el origen de datos, ya podrá crear el indexador. La configuración del indexador especifica las entradas, los parámetros y las propiedades que controlan los comportamientos en tiempo de ejecución.
Cree o actualice un indexador asignándole un nombre y haciendo referencia al origen de datos y al índice de destino:
POST /indexers?api-version=2024-07-01 { "name" : "my-file-indexer", "dataSourceName" : "my-file-datasource", "targetIndexName" : "my-search-index", "parameters": { "batchSize": null, "maxFailedItems": null, "maxFailedItemsPerBatch": null, "configuration": { "indexedFileNameExtensions" : ".pdf,.docx", "excludedFileNameExtensions" : ".png,.jpeg" } }, "schedule" : { }, "fieldMappings" : [ ] }
En la sección opcional "configuration", proporcione los criterios de inclusión o exclusión. Si se deja sin especificar, se recuperan todos los archivos del recurso compartido de archivos.
Si los parámetros
indexedFileNameExtensions
yexcludedFileNameExtensions
están presentes, Azure AI Search mira primero enindexedFileNameExtensions
y, luego, enexcludedFileNameExtensions
. Si la misma extensión de archivo está en las dos listas, se excluirá de la indexación.Especifique asignaciones de campos si hay diferencias en el nombre o el tipo de campo, o si necesita varias versiones de un campo de origen en el índice de búsqueda.
En la indexación de archivos, a menudo puede omitir las asignaciones de campos porque el indexador tiene compatibilidad integrada para asignar las propiedades "content" y de metadatos a campos con nombre y tipo similares en un índice. En el caso de las propiedades de metadatos, el indexador reemplazará automáticamente los guiones
-
por caracteres de subrayado en el índice de búsqueda.Consulte Creación de un indexador para más información sobre otras propiedades.
Un indexador se ejecuta automáticamente cuando se crea. Puede evitarlo estableciendo el valor de "disabled" en true. Para controlar la ejecución del indexador, ejecute un indexador a petición o prográmelo.
Comprobación del estado del indexador
Para supervisar el estado del indexador y el historial de ejecución, envíe una solicitud para Obtener el estado del indexador:
GET https://myservice.search.windows.net/indexers/myindexer/status?api-version=2024-07-01
Content-Type: application/json
api-key: [admin key]
La respuesta incluye el estado y el número de elementos procesados. Debe tener un aspecto similar al siguiente ejemplo:
{
"status":"running",
"lastResult": {
"status":"success",
"errorMessage":null,
"startTime":"2022-02-21T00:23:24.957Z",
"endTime":"2022-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
"executionHistory":
[
{
"status":"success",
"errorMessage":null,
"startTime":"2022-02-21T00:23:24.957Z",
"endTime":"2022-02-21T00:36:47.752Z",
"errors":[],
"itemsProcessed":1599501,
"itemsFailed":0,
"initialTrackingState":null,
"finalTrackingState":null
},
... earlier history items
]
}
El historial de ejecución contiene como máximo las 50 ejecuciones completadas más recientemente en orden cronológico inverso (la ejecución más reciente aparece en primer lugar).
Pasos siguientes
Ahora puede ejecutar el indexador, supervisar el estado o programar la ejecución del indexador. Los artículos siguientes se aplican a los indexadores que extraen contenido de Azure Storage: