Che cos'è la ricerca cognitiva in Ricerca di Azure?What is "cognitive search" in Azure Search?

La ricerca cognitiva è una funzionalità di intelligenza artificiale in Ricerca di Azure, usata per estrarre il testo da immagini, BLOB e altre origini dati non strutturate, con arricchimento del contenuto per migliorarne il supporto della ricerca in un indice di Ricerca di Azure.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. Estrazione e arricchimento vengono implementati tramite competenze cognitive associate a una pipeline di indicizzazione.Extraction and enrichment are implemented through cognitive skills attached to an indexing pipeline. I miglioramenti di intelligenza artificiale sono supportati nei modi seguenti:AI enrichments are supported in the following ways:

Diagramma della pipeline di ricerca cognitivaCognitive search pipeline diagram

Le competenze cognitive in Ricerca di Azure si basano sui modelli di Machine Learning per le API Servizi cognitivi Visione artificiale e Analisi del testo.Cognitive skills in Azure Search are based on machine learning models in Cognitive Services APIs: Computer Vision and Text Analysis.

Il linguaggio naturale e l'elaborazione delle immagini vengono applicati durante la fase di inserimento dei dati e i risultati diventano parte della composizione di un documento in un indice di ricerca consultabile in Ricerca di Azure.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. I dati vengono originati come set di dati di Azure e quindi attraverso una pipeline di indicizzazione che usa le competenze predefinite necessarie.Data is sourced as an Azure data set and then pushed through an indexing pipeline using whichever built-in skills you need. L'architettura è estendibile per permettere di creare e associare competenze personalizzate per integrare l'elaborazione personalizzata nel caso in cui le competenze predefinite non siano sufficienti.The architecture is extensible so if the built-in skills are not sufficient, you can create and attach custom skills to integrate custom processing. Esempi possono essere un modulo di entità personalizzato o un classificatore di documenti destinato a un dominio specifico, ad esempio pubblicazioni finanziarie, scientifiche o mediche.Examples might be a custom entity module or document classifier targeting a specific domain such as finance, scientific publications, or medicine.

Nota

Se si espande l'ambito aumentando la frequenza di elaborazione, aggiungendo più documenti oppure aggiungendo altri algoritmi di intelligenza artificiale, sarà necessario collegare una risorsa fatturabile di Servizi cognitivi.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. Gli addebiti si accumulano quando si chiamano le API in Servizi cognitivi e per l'estrazione di immagini come parte della fase di individuazione di documenti in Ricerca di Azure.Charges accrue when calling APIs in Cognitive Services, and for image extraction as part of the document-cracking stage in Azure Search. Non sono previsti addebiti per l'estrazione di testo dai documenti.There are no charges for text extraction from documents.

L'esecuzione delle competenze predefinite viene addebitata secondo gli attuali prezzi con pagamento in base al consumo dei Servizi cognitivi.Execution of built-in skills is charged at the existing Cognitive Services pay-as-you go price. I prezzi per l'estrazione delle immagini sono descritti nella pagina dei prezzi di Ricerca di Azure.Image extraction pricing is described on the Azure Search pricing page.

Una pipeline della ricerca cognitiva si basa su indicizzatori di Ricerca di Azure che effettuano ricerche nelle origini dati e garantiscono l'elaborazione degli indici end-to-end.A cognitive search pipeline is based on Azure Search indexers that crawl data sources and provide end-to-end index processing. Le competenze sono ora associate agli indicizzatori, intercettando e arricchendo i documenti in base al set di competenze definito.Skills are now attached to indexers, intercepting and enriching documents according to the skillset you define. Terminata l'indicizzazione è possibile accedere al contenuto tramite richieste di ricerca attraverso tutti i tipi di query supportati da Ricerca di Azure.Once indexed, you can access content via search requests through all query types supported by Azure Search. Se non si ha familiarità con gli indicizzatori, in questa sezione viene illustrata la procedura da seguire.If you are new to indexers, this section walks you through the steps.

Passaggio 1: Fase di connessione e individuazione dei documentiStep 1: Connection and document cracking phase

All'inizio della pipeline è presente un testo non strutturato o un contenuto non testuale, come ad esempio immagini e file JPEG digitalizzati.At the start of the pipeline, you have unstructured text or non-text content (such as image and scanned document JPEG files). I dati devono esistere in un servizio di archiviazione dati di Azure a cui è possibile accedere tramite un indicizzatore.Data must exist in an Azure data storage service that can be accessed by an indexer. Gli indicizzatori possono "individuare" i documenti di origine per estrarre il testo dai dati di origine.Indexers can "crack" source documents to extract text from source data.

Fase di individuazione dei documentiDocument cracking phase

Le origini supportate includono archiviazione BLOB di Azure, archiviazione tabelle di Azure, database SQL di Azure e Azure Cosmos DB.Supported sources include Azure blob storage, Azure table storage, Azure SQL Database, and Azure Cosmos DB. I contenuti testuali possono essere estratti dai seguenti tipi di file: PDF, Word, PowerPoint e CSV.Text-based content can be extracted from the following file types: PDFs, Word, PowerPoint, CSV files. Per un elenco completo, vedere Formati supportati.For the full list, see Supported formats.

Passaggio 2: Competenze cognitive e fase di arricchimentoStep 2: Cognitive skills and enrichment phase

L'arricchimento avviene tramite competenze cognitive che eseguono operazioni atomiche.Enrichment is through cognitive skills performing atomic operations. Ad esempio, dopo aver creato un contenuto testuale da un file PDF, è possibile applicare il rilevamento del linguaggio di riconoscimento di entità o l'estrazione frasi chiave per produrre nuovi campi nell'indice che non sono disponibili in modo nativo nell'origine.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. Nel complesso, la raccolta di competenze usata nella pipeline viene chiamata set di competenze.Altogether, the collection of skills used in your pipeline is called a skillset.

Fase di arricchimentoEnrichment phase

Un set di competenze si basa su competenze cognitive predefinite o competenze personalizzate fornite e connesse al set di competenze.A skillset is based on predefined cognitive skills or custom skills you provide and connect to the skillset. Un set di competenze può essere minimamente o particolarmente complesso e determina non solo il tipo di elaborazione, ma anche l'ordine delle operazioni.A skillset can be minimal or highly complex, and determines not only the type of processing, but also the order of operations. Un set di competenze, assieme ai mapping dei campi definiti come parte di un indicizzatore, specifica l'intera pipeline di arricchimento.A skillset plus the field mappings defined as part of an indexer fully specifies the enrichment pipeline. Per altre informazioni sul raggruppamento di tutte queste parti, vedere Definire un set di competenze.For more information about pulling all of these pieces together, see Define a skillset.

Internamente, la pipeline genera una raccolta di documenti arricchiti.Internally, the pipeline generates a collection of enriched documents. È possibile decidere quali parti dei documenti arricchiti devono essere mappate ai campi indicizzabili contenuti nell'indice di ricerca.You can decide which parts of the enriched documents should be mapped to indexable fields in your search index. Ad esempio, se sono state applicate le competenze di estrazione frasi chiave e riconoscimento di entità, i nuovi campi diventano parte del documento arricchito e possono essere mappati ai campi nell'indice.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. Vedere Annotazioni per altre informazioni sulle formazioni in ingresso/uscita.See Annotations to learn more about input/output formations.

Aggiungere un elemento knowledgeStore per salvare gli arricchimentiAdd a knowledgeStore element to save enrichments

L'API REST del servizio Ricerca api-version=2019-05-06 estende i set di competenze con una definizione di knowledgeStore che fornisce una connessione all'archiviazione di Azure e proiezioni che descrivono la modalità di archiviazione degli arricchimenti.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.

L'aggiunta di un knowledge store a un set di competenze consente di proiettare una rappresentazione degli arricchimenti per scenari diversi da quelli della ricerca full-text.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. Per altre informazioni, vedere Che cos'è Knowledge Store.For more information, see What is knowledge store.

Passaggio 3: Indice di ricerca e accesso basato su queryStep 3: Search index and query-based access

Al termine dell'elaborazione, si avrà un indice di ricerca costituito da documenti arricchiti in cui è possibile eseguire ricerche in Ricerca di Azure.When processing is finished, you have a search index consisting of enriched documents, fully text-searchable in Azure Search. L'esecuzione di query dell'indice consente a utenti e sviluppatori di accedere al contenuto arricchito generato dalla pipeline.Querying the index is how developers and users access the enriched content generated by the pipeline.

Indice con icona di ricercaIndex with search icon

L'indice è simile a qualsiasi altro indice creato per la Ricerca di Azure: è possibile integrare analizzatori personalizzati, richiamare query di ricerca fuzzy, aggiungere ricerche con filtri o sperimentare profili di punteggio per rielaborare i risultati della ricerca.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.

Gli indici vengono generati da uno schema dell'indice che definisce i campi, gli attributi e altri costrutti allegati a un indice specifico, come ad esempio profili di punteggio e mapping dei sinonimi.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 volta definito e popolato un indice, è possibile eseguire l'indicizzazione in modo incrementale per caricare documenti di origine nuovi e aggiornati.Once an index is defined and populated, you can index incrementally to pick up new and updated source documents. Alcune modifiche apportate richiedono una ricompilazione completa.Certain modifications require a full rebuild. È consigliabile usare un set di dati ridotto fino a quando la struttura dello schema non è stabile.You should use a small data set until the schema design is stable. Per altre informazioni, vedere How to rebuild an index (Procedura per ricompilare un indice).For more information, see How to rebuild an index.

Funzionalità e concetti principaliKey features and concepts

ConcettoConcept DESCRIZIONEDescription CollegamentiLinks
Set di competenzeSkillset Risorsa denominata di primo livello contenente una raccolta di competenze.A top-level named resource containing a collection of skills. Un set di competenze è la pipeline di arricchimento.A skillset is the enrichment pipeline. Viene richiamata durante l'indicizzazione da parte di un indicizzatore.It is invoked during indexing by an indexer. Definire un set di competenzeDefine a skillset
Competenza cognitivaCognitive skill Trasformazione atomica in una pipeline di arricchimento.An atomic transformation in an enrichment pipeline. Spesso si tratta di un componente che consente di estrarre o dedurre la struttura e pertanto aumenta il riconoscimento dei dati di input.Often, it is a component that extracts or infers structure, and therefore augments your understanding of the input data. Quasi sempre, l'output è testuale e l'elaborazione è del linguaggio naturale o di immagini e consente di estrarre o generare testo dagli input delle immagini.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. L'output di una competenza può essere mappato a un campo di un indice o usato come input per un arricchimento a valle.Output from a skill can be mapped to a field in an index, or used as an input for a downstream enrichment. Una competenza può essere predefinita e fornita da Microsoft o personalizzata, ossia creata e distribuita dall'utente.A skill is either predefined and provided by Microsoft, or custom: created and deployed by you. Competenze predefinitePredefined skills
Estrazione dei datiData extraction Include una vasta gamma di tipologie di elaborazione, comunque riferibili alla ricerca cognitiva; la competenza di riconoscimento entità è generalmente usata per estrarre dati (entità) da un'origine che non fornisce tali informazioni in modo nativo.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. Competenza di riconoscimento entitàEntity Recognition Skill
Elaborazione di immaginiImage processing Deduce il testo da un'immagine, ad esempio la possibilità di riconoscere un riferimento, oppure estrae il testo da un'immagine.Infers text from an image, such as the ability to recognize a landmark, or extracts text from an image. Alcuni esempi comuni includono l'OCR per l'estrazione di caratteri da un file digitalizzato (JPEG) o il riconoscimento del nome di una via in una foto che contiene un cartello stradale.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. Competenza di analisi delle immagini o Competenza OCRImage Analysis Skill or OCR Skill
Elaborazione del linguaggio naturaleNatural language processing Elaborazione di un testo per estrarre informazioni dettagliate e informazioni sugli input di testo.Text processing for insights and information about text inputs. Rilevamento lingua, analisi del sentiment ed estrazione frasi chiave sono competenze che rientrano nell'elaborazione del linguaggio naturale.Language detection, sentiment analysis, and key phrase extraction are skills that fall under natural language processing. Competenza di estrazione frasi chiave, Competenza di rilevamento lingua, Competenza di analisi del sentimentKey Phrase Extraction Skill, Language Detection Skill, Sentiment Analysis Skill
Individuazione di documentiDocument cracking Processo di estrazione o creazione di contenuti di testo da origini non testuali durante l'indicizzazione.The process of extracting or creating text content from non-text sources during indexing. La funzione di riconoscimento ottico dei caratteri (Optical Character Recognition - OCR) ne è un esempio, ma in genere si fa riferimento alla funzionalità di base dell'indicizzatore, che consente di estrarre contenuti da file dell'applicazione.Optical character recognition (OCR) is an example, but generally it refers to core indexer functionality as the indexer extracts content from application files. L'origine dati che fornisce il percorso del file di origine e la definizione dell'indicizzatore che fornisce il mapping dei campi sono entrambi fattori chiave nell'individuazione di documenti.The data source providing source file location, and the indexer definition providing field mappings, are both key factors in document cracking. Vedere IndicizzatoriSee Indexers
ShapingShaping Consolidare frammenti di testo in una struttura più ampia o viceversa suddividere i blocchi di testo più grandi in blocchi di dimensioni gestibili per un'altra elaborazione a valle.Consolidate text fragments into a larger structure, or conversely break down larger text chunks into a manageable size for further downstream processing. Competenza di shaping, Competenza di unione testo, Competenze di divisione testoShaper Skill, Text Merger Skill, Text Split Skill
Documenti arricchitiEnriched documents Struttura interna transitoria, generata durante l'elaborazione, con l'output finale riflesso in un indice di ricerca.A transitory internal structure, generated during processing, with final output reflected in a search index. Un set di competenze determina i miglioramenti eseguiti.A skillset determines which enrichments are performed. Il mapping dei campi determina gli elementi dati aggiunti all'indice.Field mappings determine which data elements are added to the index. È facoltativamente possibile creare un knowledge store per rendere persistenti ed esplorare i documenti arricchiti usando strumenti come Storage Explorer, Power BI o qualsiasi altro strumento che si connette ad Archiviazione BLOB di Azure.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. Vedere Knowledge store (anteprima).See Knowledge store (preview).
IndexerIndexer Crawler che estrae dati e metadati che supportano la ricerca da un'origine dati esterna e popola un indice in base a mapping da campo a campo tra l'indice e l'origine dati per l'individuazione dei documenti.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. Per l'arricchimento della ricerca cognitiva, l'indicizzatore richiama un set di competenze e contiene i mapping dei campi che associano gli output di arricchimento ai campi di destinazione nell'indice.For cognitive search enrichments, the indexer invokes a skillset, and contains the field mappings associating enrichment output to target fields in the index. La definizione dell'indicizzatore contiene tutte le istruzioni e i riferimenti per le operazioni della pipeline, che viene a sua volta richiamata quando si esegue l'indicizzatore.The indexer definition contains all of the instructions and references for pipeline operations, and the pipeline is invoked when you run the indexer. IndicizzatoriIndexers
origine datiData Source Oggetto usato da un indicizzatore per la connessione a un'origine dati esterna di tipi supportati in Azure.An object used by an indexer to connect to an external data source of supported types on Azure. Vedere IndicizzatoriSee Indexers
IndiceIndex Indice di ricerca persistente in Ricerca di Azure, compilato in base a uno schema dell'indice che definisce la struttura di campo e di utilizzo.A persisted search index in Azure Search, built from an index schema that defines field structure and usage. Indici in Ricerca di AzureIndexes in Azure Search

Dove iniziare?Where do I start?

Passaggio 1: Creare una risorsa Ricerca di AzureStep 1: Create an Azure Search resource

Passaggio 2: Provare alcune guide di avvio rapido e alcuni esempi per acquisire esperienza praticaStep 2: Try some quickstarts and examples for hands-on experience

Il servizio gratuito è consigliabile a scopi formativi, ma tenere presente che il numero di transazioni gratuite è limitato a 20 documenti al giorno.We recommend the Free service for learning purposes, but be aware that the number of free transactions is limited to 20 documents per day. Per eseguire la guida di avvio rapido e l'esercitazione nello stesso giorno, usare un set di file più piccolo (10 documenti) in modo da far rientrare entrambi gli esercizi.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.

Passaggio 3: Esaminare l'APIStep 3: Review the API

È possibile usare REST api-version=2019-05-06 sulle richieste o su .NET SDK.You can use REST api-version=2019-05-06 on requests or the .NET SDK.

In questo passaggio vengono usate API REST per creare una soluzione per la ricerca cognitiva.This step uses the REST APIs to build a cognitive search solution. Per la ricerca cognitiva vengono aggiunte o estese solo due API.Only two APIs are added or extended for cognitive search. Altre API hanno la stessa sintassi delle versioni generalmente disponibili.Other APIs have the same syntax as the generally available versions.

API RESTREST API DESCRIZIONEDescription
Creare un'origine datiCreate Data Source Risorsa che identifica un'origine dati esterna che fornisce dati di origine usati per creare documenti arricchiti.A resource identifying an external data source providing source data used to create enriched documents.
Creare un set di competenze (api-version=2019-05-06)Create Skillset (api-version=2019-05-06) Risorsa che coordina l'utilizzo di competenze predefinite e competenze cognitive personalizzate usate in una pipeline di arricchimento durante l'indicizzazione.A resource coordinating the use of predefined skills and custom cognitive skills used in an enrichment pipeline during indexing.
Creare un indiceCreate Index Schema che esprime un indice di Ricerca di Azure.A schema expressing an Azure Search index. Viene eseguito il mapping dei campi nell'indice con i campi nei dati di origine o i campi prodotti durante la fase di arricchimento (ad esempio, un campo per i nomi dell'organizzazione creati dal riconoscimento entità).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).
Creare un indicizzatore (api-version=2019-05-06)Create Indexer (api-version=2019-05-06) Risorsa che definisce i componenti usati durante l'indicizzazione, incluso un'origine dati, un set di competenze, associazioni di campi dalle strutture dei dati di origine e intermedie all'indice di destinazione, oltre all'indice stesso.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. L'esecuzione dell'indicizzatore è il trigger di inserimento dati e arricchimento.Running the indexer is the trigger for data ingestion and enrichment. L'output è un indice di ricerca basato sullo schema dell'indice, popolato con dati di origine e arricchito da set di competenze.The output is a search index based on the index schema, populated with source data, enriched through skillsets.

Elenco di controllo: un flusso di lavoro tipicoChecklist: A typical workflow

  1. Includere in un sottoinsieme i dati di origine di Azure in un campione rappresentativo.Subset your Azure source data into a representative sample. L'indicizzazione richiede tempo; si consiglia quindi di iniziare con un set di dati piccolo ma rappresentativo, per poi compilarlo in modo incrementale con l'evolversi della soluzione.Indexing takes time so start with a small, representative data set and then build it up incrementally as your solution matures.

  2. Creare un oggetto di origine dati in Ricerca di Azure per fornire una stringa di connessione per il recupero dati.Create a data source object in Azure Search to provide a connection string for data retrieval.

  3. Creare un set di competenze con una procedura di arricchimento.Create a skillset with enrichment steps.

  4. Definire lo schema dell'indice.Define the index schema. La raccolta Campi include campi provenienti dall'origine dati.The Fields collection includes fields from source data. È necessario anche disattivare i campi aggiuntivi per mantenere i valori generati per il contenuto creato durante l'arricchimento.You should also stub out additional fields to hold generated values for content created during enrichment.

  5. Definire l'indicizzatore che fa riferimento all'origine dati, al set di competenze e all'indice.Define the indexer referencing the data source, skillset, and index.

  6. All'interno dell'indicizzatore, aggiungere outputFieldMappings.Within the indexer, add outputFieldMappings. In questa sezione viene eseguito il mapping dell'output dal set di competenze (nel passaggio 3) ai campi di input nello schema dell'indice (nel passaggio 4).This section maps output from the skillset (in step 3) to the inputs fields in the index schema (in step 4).

  7. Inviare la richiesta Crea l'indicizzatore appena creata (una richiesta POST con una definizione dell'indicizzatore nel corpo della richiesta) per esprimere l'indicizzatore in Ricerca di Azure.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. Questo passaggio descrive come viene eseguito l'indicizzatore, richiamando la pipeline.This step is how you run the indexer, invoking the pipeline.

  8. Eseguire query per valutare i risultati e modificare il codice per aggiornare i set di competenze, lo schema o la configurazione dell'indicizzatore.Run queries to evaluate results and modify code to update skillsets, schema, or indexer configuration.

  9. Reimpostare l'indicizzatore prima di ricompilare la pipeline.Reset the indexer before rebuilding the pipeline.

Per altre informazioni su domande o problemi specifici, vedere Suggerimenti per la risoluzione dei problemi.For more information about specific questions or problems, see Troubleshooting tips.

Passaggi successiviNext steps