Importación de datos en Azure Cognitive Search
En Azure Cognitive Search, las consultas se ejecutan sobre el contenido que es propiedad del usuario y que está cargado en un índice de búsqueda. En este artículo se describen los dos flujos de trabajo básicos para rellenar un índice: insertar los datos en el índice mediante programación o extraer los datos mediante un indexador de búsqueda.
Con cualquiera de esos dos enfoques, el objetivo es cargar datos de un origen de datos externo. Aunque puede crear un índice vacío, no se puede consultar hasta que agregue el contenido.
Nota
Si el enriquecimiento con IA es un requisito de la solución, debe usar el modelo de extracción (indexadores) para cargar un índice. El procesamiento externo solo es posible a través de conjuntos de aptitudes conectados a un indexador.
Inserción de datos en un índice
El modelo de inserción, que se usa para enviar a Azure Cognitive Search los datos mediante programación, es el enfoque más flexible por las razones siguientes:
En primer lugar, no hay restricciones en el tipo de origen de datos. El conjunto de datos debe estar compuesto de documentos JSON, que se asignan al esquema de índice, pero los datos pueden llegar desde cualquier sitio.
En segundo lugar, no hay restricciones en la frecuencia de ejecución. Puede insertar los cambios a un índice tantas veces como desee. En el caso de las aplicaciones con requisitos de latencia baja (por ejemplo, si se necesita que las operaciones de búsqueda estén sincronizadas con las bases de datos dinámicas del inventario), la única opción es un modelo de inserción.
En tercer lugar, puede cargar documentos individualmente o en lotes de hasta 1000 por lote, o 16 MB por lote, dependiendo del límite que se alcance primero.
Inserción de los datos en un índice de Azure Cognitive Search
Puede usar las siguientes API para cargar uno o varios documentos en un índice:
- Agregar, Actualizar o Eliminar documentos (API de REST)
- Clase IndexDocumentsAction (SDK de Azure para .NET) o clase IndexDocumentsBatch
Actualmente no se admite ninguna herramienta para insertar datos mediante el portal.
Para obtener una introducción a las API de inserción, vea lo siguiente:
- Tutorial de C#: Optimización de la indexación mediante la API de inserción
- Inicio rápido de C#: Creación de un índice de Azure Cognitive Search mediante el SDK para .NET
- Inicio rápido de REST: Creación de un índice de Azure Cognitive Search mediante PowerShell
Acciones de indexación: "upload" (carga), "merge" (combinación), "mergeOrUpload" (combinación o carga) y "delete" (eliminación)
Puede controlar el tipo de acción de indexación por documento, especificando si se debe cargar el documento totalmente, combinarlo con el contenido del documento existente o eliminarlo.
Tanto si usa la API REST como un SDK, se admiten las operaciones de documentos siguientes para la importación de datos:
Upload (carga), similar a una operación "upsert", donde se insertará el documento si es nuevo, y se actualizará o reemplazará si ya existe. Si al documento le faltan valores que requiere el índice, el valor del campo de documento se establece en NULL.
merge (combinación) actualiza un documento que ya existe y producirá un error en un documento si no se encuentra. La operación "merge" reemplaza los valores existentes. Por esta razón, asegúrese de comprobar que los campos de colección contengan varios valores, como los campos de tipo
Collection(Edm.String)
. Por ejemplo, si el campotags
empieza con un valor de["budget"]
y ejecuta una operación "merge" con el valor["economy", "pool"]
, el valor final del campotags
será["economy", "pool"]
. No será["budget", "economy", "pool"]
.mergeOrUpload (combinación o carga) se comporta como merge si el documento existe, y como upload si el documento es nuevo.
delete (eliminación) quita todo el documento del índice. Si solo quiere quitar un campo individual, utilice merge en su lugar, estableciendo el campo en cuestión en NULL.
Extracción de datos en un índice
El modelo de extracción rastrea un origen de datos compatible y carga automáticamente los datos en el índice. En Azure Cognitive Search, esta funcionalidad se implementa a través de indizadores, que en este momento se encuentran disponibles en las siguientes plataformas:
- Almacenamiento de blobs de Azure
- Azure Table Storage
- Azure Data Lake Storage Gen2
- Azure Files (versión preliminar)
- Azure Cosmos DB
- Azure SQL Database, Instancia administrada de SQL y SQL Server en máquinas virtuales de Azure
- SharePoint en Microsoft 365 (versión preliminar)
- Conectores de datos de Power Query (versión preliminar)
Los indexadores conectan un índice a un origen de datos (normalmente una tabla, vista o estructura equivalente) y asignan campos de origen a los campos equivalentes del índice. Durante la ejecución, el conjunto de filas se transforma automáticamente en JSON y se carga en el índice especificado. Todos los indexadores admiten la programación, de modo que se puede especificar con qué frecuencia se deben actualizar los datos. La mayoría de los indexadores proporcionan seguimiento de cambios, siempre el origen de datos lo admita. Mediante el seguimiento de cambios y eliminaciones en documentos existentes, además de reconocer nuevos documentos, los indexadores eliminan la necesidad de administrar activamente los datos del índice.
Extracción de datos en un índice de Azure Cognitive Search
La funcionalidad del indexador se expone en Azure Portal así como en la API de REST y el SDK de .NET.
Una ventaja del uso del portal es que Azure Cognitive Search puede generar normalmente un esquema de índice predeterminado, mediante la lectura de los metadatos del conjunto de datos de origen. El índice generado se puede modificar hasta que se procese, tras lo cual las únicas modificaciones de esquema que se permiten son las que no requieren volver a indexar. Si los cambios afectan al propio esquema, tendría que recompilar el índice.
Verificación de la importación de datos con el Explorador de búsqueda
Una forma rápida de realizar una comprobación preliminar en la carga de documentos es usar el Explorador de búsqueda en el portal.
El explorador permite consultar un índice sin tener que escribir código. La búsqueda se basa en los valores predeterminados, como la sintaxis simple y el parámetro de consulta searchMode predeterminado. Los resultados se devuelven en formato JSON, con el fin de que pueda revisar todo el documento.
Esta es una consulta de ejemplo que puede ejecutar en el Explorador de búsqueda. "HotelId" es la clave de documento del índice hotels-sample-index. El filtro proporciona el id. de documento de un documento específico:
$filter=HotelId eq '50'
Si usa REST, esta consulta de búsqueda consigue el mismo propósito.