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:

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:

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 campo tags empieza con un valor de ["budget"] y ejecuta una operación "merge" con el valor ["economy", "pool"], el valor final del campo tags 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:

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.

Screenshot of Search Explorer command in the Azure 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.

Consulte también