¿Qué es la "búsqueda cognitiva" en Azure Search?What is "cognitive search" in Azure Search?

La búsqueda cognitiva es una característica de IA en Azure Search, que se usa para extraer el texto de imágenes, blobs y otros orígenes de datos no estructurados, enriqueciendo el contenido para facilitar las búsquedas en un índice de Azure Search.Cognitive search is an AI feature in Azure Search, used to extract text from images, blobs, and other unstructured data sources - enriching the content to make it more searchable in an Azure Search index. La extracción y el enriquecimiento se implementan a través de conocimientos cognitivos adjuntados a una canalización de indexación.Extraction and enrichment are implemented through cognitive skills attached to an indexing pipeline. Los enriquecimientos por IA se admiten de las maneras siguientes:AI enrichments are supported in the following ways:

Diagrama de canalización de Cognitive SearchCognitive search pipeline diagram

Los conocimientos cognitivos de Azure Search se basan en los modelos de Machine Learning de Cognitive Services APIs: Computer Vision y análisis de texto.Cognitive skills in Azure Search are based on machine learning models in Cognitive Services APIs: Computer Vision and Text Analysis.

El lenguaje natural y el procesamiento de imágenes se aplican durante la fase de ingesta de datos, con resultados que formarán parte de la composición de un documento en un índice que se puede buscar en Azure Search.Natural language and image processing is applied during the data ingestion phase, with results becoming part of a document's composition in a searchable index in Azure Search. Los datos se obtienen como un conjunto de datos de Azure y luego se insertan a través de una canalización de indexación mediante las aptitudes integradas que necesite.Data is sourced as an Azure data set and then pushed through an indexing pipeline using whichever built-in skills you need. La arquitectura es extensible, por lo que si las aptitudes integradas no son suficientes, puede crear y adjuntar aptitudes personalizadas para integrar el procesamiento personalizado.The architecture is extensible so if the built-in skills are not sufficient, you can create and attach custom skills to integrate custom processing. Algunos ejemplos pueden ser un módulo de entidad personalizado o un clasificador de documentos que tiene como destino un dominio específico, como finanzas, publicaciones científicas o medicina.Examples might be a custom entity module or document classifier targeting a specific domain such as finance, scientific publications, or medicine.

Nota

A medida que expanda el ámbito aumentando la frecuencia de procesamiento, agregando más documentos o agregando más algoritmos de IA, tendrá que asociar un recurso facturable de Cognitive Services.As you expand scope by increasing the frequency of processing, adding more documents, or adding more AI algorithms, you will need to attach a billable Cognitive Services resource. Los cargos se acumulan cuando se llama a las API de Cognitive Services y para la extracción de imágenes como parte de la fase de descifrado de documentos en Azure Search.Charges accrue when calling APIs in Cognitive Services, and for image extraction as part of the document-cracking stage in Azure Search. No hay ningún cargo por la extracción de texto de documentos.There are no charges for text extraction from documents.

La ejecución de aptitudes integradas se cobra según los precios de pago por uso de Cognitive Services existentes.Execution of built-in skills is charged at the existing Cognitive Services pay-as-you go price. La extracción de imágenes se cobra tal y como se describe en la página de precios de Azure Search.Image extraction pricing is described on the Azure Search pricing page.

Una canalización de búsqueda cognitiva se basa en indizadores de Azure Search, que rastrean los orígenes de datos y ofrecen procesamiento de índices de un extremo a otro.A cognitive search pipeline is based on Azure Search indexers that crawl data sources and provide end-to-end index processing. Las aptitudes ahora se adjuntan a los indexadores, lo que permite interceptar y enriquecer los documentos en función del conjunto de aptitudes que defina.Skills are now attached to indexers, intercepting and enriching documents according to the skillset you define. Una vez que se indexa, puede acceder al contenido mediante solicitudes de búsqueda a través de todos los tipos de consulta compatibles con Azure Search.Once indexed, you can access content via search requests through all query types supported by Azure Search. Si es la primera vez que usa los indexadores, esta sección lo guiará a través de los pasos.If you are new to indexers, this section walks you through the steps.

Paso 1: Fase de conexión y descifrado de documentosStep 1: Connection and document cracking phase

Al comienzo de la canalización, hay texto no estructurado o contenido que no es de texto, como archivos JPEG de documentos escaneados e imágenes.At the start of the pipeline, you have unstructured text or non-text content (such as image and scanned document JPEG files). Los datos deben estar en un servicio de almacenamiento de datos de Azure al que un indexador puede acceder.Data must exist in an Azure data storage service that can be accessed by an indexer. Los indexadores pueden "descifrar" los documentos de origen para extraer texto de los datos de origen.Indexers can "crack" source documents to extract text from source data.

Fase de descifrado de documentosDocument cracking phase

Entre los orígenes compatibles se incluyen Azure Blob Storage, Azure Table Storage, Azure SQL Database y Azure Cosmos DB.Supported sources include Azure blob storage, Azure table storage, Azure SQL Database, and Azure Cosmos DB. El contenido basado en texto se puede extraer de estos tipos de archivo: archivos PDF, Word, PowerPoint, archivos CSV.Text-based content can be extracted from the following file types: PDFs, Word, PowerPoint, CSV files. Para ver la lista completa, consulte los formatos compatibles.For the full list, see Supported formats.

Paso 2: Fase de enriquecimiento y aptitudes cognitivasStep 2: Cognitive skills and enrichment phase

El enriquecimiento se produce a través de aptitudes cognitivas que realizan operaciones atómicas.Enrichment is through cognitive skills performing atomic operations. Por ejemplo, una vez que obtiene el contenido de texto de un archivo PDF, puede aplicar la detección de idioma del reconocimiento de entidades o la extracción de frases clave para generar campos nuevos en el índice que no están disponibles de manera nativa en el origen.For example, once you have text content from a PDF, you can apply entity recognition language detection, or key phrase extraction to produce new fields in your index that are not available natively in the source. La colección completa de aptitudes que usa en la canalización se conoce como un conjunto de aptitudes.Altogether, the collection of skills used in your pipeline is called a skillset.

Fase de enriquecimientoEnrichment phase

Un conjunto de aptitudes se basa en las aptitudes cognitivas predefinidas o en las aptitudes predeterminadas que proporciona y conecta con el conjunto de aptitudes.A skillset is based on predefined cognitive skills or custom skills you provide and connect to the skillset. Un conjunto de aptitudes puede ser mínimo o altamente complejo y no solo determina el tipo de procesamiento, sino también el orden de las operaciones.A skillset can be minimal or highly complex, and determines not only the type of processing, but also the order of operations. Un conjunto de aptitudes más las asignaciones de campos que se definen como parte de un indexador especifica completamente la canalización de enriquecimiento.A skillset plus the field mappings defined as part of an indexer fully specifies the enrichment pipeline. Para más información sobre cómo unir todos estos elementos, consulte el artículo sobre cómo definir un conjunto de aptitudes.For more information about pulling all of these pieces together, see Define a skillset.

Internamente, la canalización genera una colección de documentos enriquecidos.Internally, the pipeline generates a collection of enriched documents. Puede decidir qué elementos de los documentos enriquecidos se deben asignar a los campos del índice de búsqueda que se pueden indexar.You can decide which parts of the enriched documents should be mapped to indexable fields in your search index. Por ejemplo, si aplicara las aptitudes de reconocimiento de entidades y de extracción de frases clave, esos campos nuevos se volverían parte del documento enriquecido y se podrían asignar a los campos del índice.For example, if you applied the key phrases extraction and the entity recognition skills, then those new fields would become part of the enriched document, and they can be mapped to fields on your index. Consulte las anotaciones para más información sobre las formaciones de entrada/salida.See Annotations to learn more about input/output formations.

Adición de un elemento knowledgeStore para guardar enriquecimientosAdd a knowledgeStore element to save enrichments

El elemento api-version=2019-05-06 de REST de Search Service extiende los conjuntos de aptitudes con una definición de knowledgeStore que proporciona una conexión al almacenamiento de Azure y proyecciones que describen cómo se almacenan los enriquecimientos.Search service REST api-version=2019-05-06 extends skillsets with a knowledgeStore definition that provides an Azure storage connection and projections that describe how the enrichments are stored.

Cuando agrega una instancia de Knowledge Store a un conjunto de aptitudes, puede proyectar una representación de sus enriquecimientos para los escenarios que no sean de búsqueda de texto completo.Adding a knowledge store to a skillset gives you the ability to project a representation of your enrichments for scenarios other than full text search. Para más información, consulte ¿Qué es Knowledge Store?For more information, see What is knowledge store.

Paso 3: Índice de búsqueda y acceso basado en consultaStep 3: Search index and query-based access

Cuando finaliza el procesamiento, obtiene un índice de búsqueda que consta de documentos enriquecidos con texto totalmente apto para búsquedas en Azure Search.When processing is finished, you have a search index consisting of enriched documents, fully text-searchable in Azure Search. Para acceder al contenido enriquecido que la canalización genera, los desarrolladores y usuarios consultan el índice.Querying the index is how developers and users access the enriched content generated by the pipeline.

Icono de índice con búsquedaIndex with search icon

El índice es como cualquier otro índice que pudiera crear para Azure Search: puede complementarlo con analizadores personalizados, invocar consultas de búsqueda aproximada, agregar la búsqueda filtrada o experimentar con perfiles de puntuación para volver a dar forma a los resultados de la búsqueda.The index is like any other you might create for Azure Search: you can supplement with custom analyzers, invoke fuzzy search queries, add filtered search, or experiment with scoring profiles to reshape the search results.

Los índices se generan a partir de un esquema de índice que define los campos, atributos y otras construcciones adjuntas a un índice específico, como los perfiles de puntuación y las asignaciones de sinónimos.Indexes are generated from an index schema that defines the fields, attributes, and other constructs attached to a specific index, such as scoring profiles and synonym maps. Una vez que se define y rellena un índice, puede indexar de manera incremental para seleccionar documentos de origen nuevos y actualizados.Once an index is defined and populated, you can index incrementally to pick up new and updated source documents. Algunas de las determinaciones requieren recompilar completamente el índice.Certain modifications require a full rebuild. Debe usar un conjunto de datos pequeño hasta que el diseño del esquema sea estable.You should use a small data set until the schema design is stable. Para más información, consulte el artículo sobre cómo recompilar un índice.For more information, see How to rebuild an index.

Características y conceptos principalesKey features and concepts

ConceptoConcept DESCRIPCIÓNDescription VínculosLinks
Conjunto de aptitudesSkillset Recurso con nombre de nivel superior que contiene una colección de aptitudes.A top-level named resource containing a collection of skills. Un conjunto de aptitudes es la canalización de enriquecimiento.A skillset is the enrichment pipeline. Se invoca durante la indexación por parte del indexador.It is invoked during indexing by an indexer. Define a skillset (Definición de un conjunto de aptitudes)Define a skillset
Aptitud cognitivaCognitive skill Transformación atómica en una canalización de enriquecimiento.An atomic transformation in an enrichment pipeline. Normalmente, se trata de un componente que extrae o deduce la estructura y, por tanto, aumenta el reconocimiento de los datos de entrada.Often, it is a component that extracts or infers structure, and therefore augments your understanding of the input data. Casi siempre, la salida se basa en el texto y el procesamiento es el procesamiento de lenguaje natural o el procesamiento de imagen que extrae o genera texto a partir de entradas de imágenes.Almost always, the output is text-based and the processing is natural language processing or image processing that extracts or generates text from image inputs. La salida de una aptitud se puede asignar a un campo en un índice o usar como entrada para el enriquecimiento de nivel inferior.Output from a skill can be mapped to a field in an index, or used as an input for a downstream enrichment. Microsoft predefinida y proporciona una aptitud, o bien puede ser personalizada, es decir, el usuario puede crearla e implementarla.A skill is either predefined and provided by Microsoft, or custom: created and deployed by you. Aptitudes predefinidasPredefined skills
Extracción de datosData extraction Aunque abarca una amplia gama de procesamientos, en relación con la búsqueda cognitiva, la aptitud Reconocimiento de entidades, normalmente, se usa para extraer los datos (una entidad) de un origen que no proporciona esa información de forma nativa.Covers a broad range of processing, but pertaining to cognitive search, the entity recognition skill is most typically used to extract data (an entity) from a source that doesn't provide that information natively. Aptitud cognitiva Reconocimiento de entidades con nombreEntity Recognition Skill
Procesamiento de imágenesImage processing Deduce texto a partir de una imagen, como la capacidad de reconocer un punto de referencia, o bien extrae texto a partir de una imagen.Infers text from an image, such as the ability to recognize a landmark, or extracts text from an image. Algunos ejemplos comunes incluyen OCR para levantar caracteres de un archivo de documento escaneado (JPEG) o reconocer el nombre de una calle en una fotografía que incluye un letrero con el nombre.Common examples include OCR for lifting characters from a scanned document (JPEG) file, or recognizing a street name in a photograph containing a street sign. Image Analysis Skill (Aptitud de análisis de imágenes) o OCR Skill (Aptitud de OCR)Image Analysis Skill or OCR Skill
Procesamiento de lenguaje naturalNatural language processing Procesamiento de texto para obtener conclusiones e información sobre entradas de texto.Text processing for insights and information about text inputs. La detección de idioma, el análisis de sentimiento y la extracción de frases clave son aptitudes que se enmarcan en el procesamiento de lenguaje natural.Language detection, sentiment analysis, and key phrase extraction are skills that fall under natural language processing. Key Phrase Extraction Skill (Aptitud de Extracción de frases clave), Language Detection Skill (Aptitud de Detección de idioma), Sentiment Analysis Skill (Aptitud de Análisis de sentimiento)Key Phrase Extraction Skill, Language Detection Skill, Sentiment Analysis Skill
Descifrado de documentosDocument cracking Proceso de extraer o crear contenido de texto a partir de orígenes que no son de texto durante el indexado.The process of extracting or creating text content from non-text sources during indexing. El reconocimiento óptico de caracteres (OCR) es un ejemplo pero, en general, se refiere a la funcionalidad de indexador principal cuando el indexador extrae contenido los archivos de aplicación.Optical character recognition (OCR) is an example, but generally it refers to core indexer functionality as the indexer extracts content from application files. El origen de datos que proporciona la ubicación del archivo de origen y la definición del indexador que brinda las asignaciones de campo son factores clave en el descifrado de documentos.The data source providing source file location, and the indexer definition providing field mappings, are both key factors in document cracking. Consulte Indexers (Indexador)See Indexers
FormasShaping Consolide los fragmentos de texto en una estructura más grande o, a la inversa, desglose fragmentos de texto de gran tamaño a un tamaño que se pueda administrar para un procesamiento adicional.Consolidate text fragments into a larger structure, or conversely break down larger text chunks into a manageable size for further downstream processing. Shaper Skill (Aptitud de conformador), Text Merger Skill (Aptitud de combinación de texto), Text Split Skill (Aptitud de división de texto)Shaper Skill, Text Merger Skill, Text Split Skill
Documentos enriquecidosEnriched documents Una estructura interna transitoria, generada durante el procesamiento, con el resultado final reflejado en un índice de búsqueda.A transitory internal structure, generated during processing, with final output reflected in a search index. Un conjunto de aptitudes determina qué enriquecimientos se llevan a cabo.A skillset determines which enrichments are performed. Las asignaciones de campos determinan los elementos de datos que se agregan al índice.Field mappings determine which data elements are added to the index. Opcionalmente, puede crear un almacén de conocimientos para conservar y explorar documentos enriquecidos mediante herramientas como Explorador de Storage, Power BI o cualquier otra herramienta que se conecte a Azure Blob Storage.Optionally, you can create a knowledge store to persist and explore enriched documents using tools like Storage Explorer, Power BI, or any other tool that connects to Azure Blob storage. Consulte Knowledge Store (versión preliminar).See Knowledge store (preview).
IndexerIndexer Un rastreador (crawler) que extrae datos y metadatos utilizables en búsquedas de un origen de datos externo y rellena un índice basado en las asignaciones de un campo a otro entre el índice y su origen de datos para el descifrado de documentos.A crawler that extracts searchable data and metadata from an external data source and populates an index based on field-to-field mappings between the index and your data source for document cracking. En el caso de Cognitive Search, el indexador invoca un conjunto de aptitudes y contiene las asignaciones de campos que asocian la salida de enriquecimiento con los campos de destino del índice.For cognitive search enrichments, the indexer invokes a skillset, and contains the field mappings associating enrichment output to target fields in the index. La definición del indexador contiene todas las instrucciones y referencias de las operaciones de la canalización y esta se invoca cuando se ejecuta el indexador.The indexer definition contains all of the instructions and references for pipeline operations, and the pipeline is invoked when you run the indexer. IndexadoresIndexers
Origen de datosData Source Un objeto que un indexador usa para conectarse a un origen de datos externo de tipos compatibles en Azure.An object used by an indexer to connect to an external data source of supported types on Azure. Consulte Indexers (Indexador)See Indexers
ÍndiceIndex Índice de búsqueda persistente en Azure Search; se crea a partir de un esquema de índice que define el uso y estructura de los campos.A persisted search index in Azure Search, built from an index schema that defines field structure and usage. Indexes in Azure Search (Índices en Azure Search)Indexes in Azure Search

¿Por dónde empiezo?Where do I start?

Paso 1: Creación de un recurso de Azure SearchStep 1: Create an Azure Search resource

Paso 2: Pruebe algunos Inicios rápidos y ejemplos de experiencia prácticaStep 2: Try some quickstarts and examples for hands-on experience

Para fines de aprendizaje se recomienda el servicio Gratis, pero tenga en cuenta que el número de transacciones gratis se limita a 20 documentos al día.We recommend the Free service for learning purposes, but be aware that the number of free transactions is limited to 20 documents per day. Para ejecutar el inicio rápido y el tutorial en un día, use un conjunto de archivos más pequeño (10 documentos) para que pueda adaptarlo a ambos ejercicios.To run both the quickstart and tutorial in one day, use a smaller file set (10 documents) so that you can fit in both exercises.

Paso 3: Revise la APIStep 3: Review the API

Puede usar la versión api-version=2019-05-06 de REST en solicitudes o el SDK. de NET.You can use REST api-version=2019-05-06 on requests or the .NET SDK.

Este paso usa las API REST para crear una solución de búsqueda cognitiva.This step uses the REST APIs to build a cognitive search solution. Solo se agregan o extienden dos API para Cognitive Search.Only two APIs are added or extended for cognitive search. Otras API tienen la misma sintaxis que las versiones con disponibilidad general.Other APIs have the same syntax as the generally available versions.

API DE RESTREST API DESCRIPCIÓNDescription
Create Data Source (Creación de un origen de datos)Create Data Source Recurso que identifica un origen de datos externo que proporciona los datos de origen que se usan para crear documentos enriquecidos.A resource identifying an external data source providing source data used to create enriched documents.
Create Skillset (api-version=2019-05-06)Create Skillset (api-version=2019-05-06) Recurso que coordina el uso de las aptitudes predefinidas y las aptitudes cognitivas personalizadas que se usan en una canalización de enriquecimiento durante el indexado.A resource coordinating the use of predefined skills and custom cognitive skills used in an enrichment pipeline during indexing.
Crear índiceCreate Index Esquema que expresa un índice de Azure Search.A schema expressing an Azure Search index. Los campos del índice se asignan a los campos de los datos de origen o a los campos fabricados durante la fase de enriquecimiento (por ejemplo, un campo para los nombres de organización creado por el reconocimiento de entidades).Fields in the index map to fields in source data or to fields manufactured during the enrichment phase (for example, a field for organization names created by entity recognition).
Create Indexer (api-version=2019-05-06)Create Indexer (api-version=2019-05-06) Recurso que define los componentes usados durante la indexación, los que incluyen un origen de datos, un conjunto de aptitudes, asociaciones de campos desde el origen y estructuras de datos intermedias con el índice de destino, además del destino mismo.A resource defining components used during indexing: including a data source, a skillset, field associations from source and intermediary data structures to target index, and the index itself. La ejecución del indexador es el desencadenador del enriquecimiento y la ingesta de datos.Running the indexer is the trigger for data ingestion and enrichment. El resultado es un índice de búsqueda basado en el esquema de índice, que se rellena con datos de origen enriquecidos a través de conjuntos de aptitudes.The output is a search index based on the index schema, populated with source data, enriched through skillsets.

Lista de comprobación: Un flujo de trabajo típicoChecklist: A typical workflow

  1. Subdivida los datos de origen de Azure en un ejemplo representativo.Subset your Azure source data into a representative sample. La indexación toma tiempo, por lo que empiece con un conjunto de datos representativo y pequeño para ir compilando el índice de manera incremental a medida que la solución madura.Indexing takes time so start with a small, representative data set and then build it up incrementally as your solution matures.

  2. Cree un objeto de origen de datos en Azure Search para proporciona una cadena de conexión para la recuperación de datos.Create a data source object in Azure Search to provide a connection string for data retrieval.

  3. Cree un conjunto de aptitudes con pasos de enriquecimiento.Create a skillset with enrichment steps.

  4. Defina el esquema de índice.Define the index schema. La colección Fields (Campos) incluye campos de los datos de origen.The Fields collection includes fields from source data. También debe simular campos adicionales para contener valores generados para el contenido creado durante el enriquecimiento.You should also stub out additional fields to hold generated values for content created during enrichment.

  5. Defina el indexador que hace referencia al origen de datos, conjunto de aptitudes e índice.Define the indexer referencing the data source, skillset, and index.

  6. Dentro del indexador, agregue outputFieldMappings.Within the indexer, add outputFieldMappings. En esta sección, la salida se asigna desde el conjunto de aptitudes (en el paso 3) a los campos de entrada del esquema de índice (en el paso 4).This section maps output from the skillset (in step 3) to the inputs fields in the index schema (in step 4).

  7. Envíe la solicitud Create Indexer (Crear indexador) que acaba de crear (una solicitud POST con una definición de indexador en el cuerpo de la solicitud) para expresar el indexador en Azure Search.Send Create Indexer request you just created (a POST request with an indexer definition in the request body) to express the indexer in Azure Search. Este paso se refiere a cómo ejecuta el indexador mediante la invocación de la canalización.This step is how you run the indexer, invoking the pipeline.

  8. Ejecute consultas para evaluar los resultados y modifique el código para actualizar la configuración del indexador, el esquema o los conjuntos de aptitudes.Run queries to evaluate results and modify code to update skillsets, schema, or indexer configuration.

  9. Restablezca el indexador antes de recompilar la canalización.Reset the indexer before rebuilding the pipeline.

Para más información sobre preguntas o problemas específicos, consulte las sugerencias para solucionar problemas.For more information about specific questions or problems, see Troubleshooting tips.

Pasos siguientesNext steps