Importar datos en Azure AI Search
En Azure AI Search, las consultas se ejecutan sobre el contenido propiedad del usuario 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.
Ambos enfoques cargan documentos desde 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 o la vectorización integrada son requisitos de la solución, debe usar el modelo de extracción (indexadores) para cargar un índice. Los conjuntos de aptitudes están conectados a indexadores y no se ejecutan de manera independiente.
Inserción de datos en un índice
El modelo de inserción es un enfoque que usa las API para cargar documentos en un índice de búsqueda existente. Puede cargar documentos individualmente o en lotes de hasta 1000 por lote, o 16 MB por lote (el que se alcance primero).
Entre las ventajas clave se incluyen las siguientes:
No hay restricciones en el tipo de origen de datos. La carga útil debe estar compuesta de documentos JSON que correspondan al esquema del índice, pero los datos pueden tener su origen en cualquier sitio.
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 baja latencia (por ejemplo, cuando el índice debe estar sincronizado con las fluctuaciones del inventario de productos), la única opción es un modelo de inserción.
La conectividad y la recuperación segura de documentos están totalmente bajo su control. Por el contrario, las conexiones del indexador se autentican mediante las características de seguridad proporcionadas en Azure AI Search.
Cómo insertar los datos en un índice de Azure AI Search
Use las siguientes API para cargar uno o varios documentos en un índice:
- Documentos de índice (API de REST)
- IndexDocumentsAsync (Azure SDK para .NET) o SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK para Python) o SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK para Java) o SearchIndexingBufferedSender
- IndexDocumentsBatch (Azure SDK para JavaScript o SearchIndexingBufferedSender
No se admite la inserción de datos a través de Azure Portal.
Para obtener una introducción a las API de inserción, vea lo siguiente:
- Inicio rápido: Buscar texto completo con los SDK de Azure
- Tutorial de C#: Optimización de la indexación mediante la API de inserción
- Inicio rápido de REST: Crear un índice de Azure AI Search mediante PowerShell
Acciones de indexación: carga, combinación, mergeOrUpload y 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.
Sin importar si usa la API de REST o un SDK de Azure, se admitirán las operaciones de documentos siguientes para la importación de datos:
Upload, similar a una operación "upsert", en la que 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 actualiza un documento que ya existe y muestra un error 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 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 usa indexadores que se conectan a un origen de datos admitido, cargando automáticamente los datos en el índice. Los indexadores de Microsoft están disponibles para estas 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
- Archivos y accesos directos de OneLake
- SharePoint Online (versión preliminar)
Puede usar conectores de terceros, desarrollados y mantenidos por asociados de Microsoft. Para obtener más información y vínculos, consulte Galería de orígenes de datos.
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.
Cómo extraer los datos en un índice de Azure AI Search
Use las siguientes herramientas y API para la indexación basada en indexadores:
- Asistente para importación de datos o Asistente para la importación y vectorización de datos
- API de REST: Create Indexer (REST), Create Data Source (REST), Create Index (REST)
- Azure SDK para .NET: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex
- Azure SDK para Python: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex
- Azure SDK para Java: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex
- Azure SDK para JavaScript: SearchIndexer, SearchIndexerDataSourceConnection, SearchIndex
La funcionalidad del indexador se expone en [Azure Portal], la API de REST y el SDK de .NET.
Una ventaja del uso del portal es que Azure AI Search puede generar normalmente un esquema de índice predeterminado mediante la lectura de los metadatos del conjunto de datos de origen.
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 en la vista JSON. "HotelId" es la clave de documento del índice hotels-sample-index. El filtro proporciona el id. de documento de un documento específico:
{
"search": "*",
"filter": "HotelId eq '50'"
}
Si usa REST, esta consulta de búsqueda consigue el mismo propósito.