Built-in cognitive skills for text and image processing during indexing (Azure Cognitive Search)

In this article, you learn about the cognitive skills provided with Azure Cognitive Search that you can include in a skillset to extract content and structure. A cognitive skill is a module or operation that transforms content in some way. Often, it is a component that extracts data or infers structure, and therefore augments our understanding of the input data. Almost always, the output is text-based. A skillset is collection of skills that define the enrichment pipeline.


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. Charges accrue when calling APIs in Cognitive Services, and for image extraction as part of the document-cracking stage in Azure Cognitive Search. There are no charges for text extraction from documents.

Execution of built-in skills is charged at the existing Cognitive Services pay-as-you go price. Image extraction pricing is described on the Azure Cognitive Search pricing page.

The incremental enrichment (preview) feature allows you to provide a cache that enables the indexer to be more efficient at running only the cognitive skills that are necessary if you modify your skillset in the future, saving you time and money.

Built-in skills

Several skills are flexible in what they consume or produce. In general, most skills are based on pre-trained models, which means you cannot train the model using your own training data. The following table enumerates and describes the skills provided by Microsoft.

Skill Description
Microsoft.Skills.Text.CustomEntityLookupSkill Looks for text from a custom, user-defined list of words and phrases.
Microsoft.Skills.Text.KeyPhraseExtractionSkill This skill uses a pretrained model to detect important phrases based on term placement, linguistic rules, proximity to other terms, and how unusual the term is within the source data.
Microsoft.Skills.Text.LanguageDetectionSkill This skill uses a pretrained model to detect which language is used (one language ID per document). When multiple languages are used within the same text segments, the output is the LCID of the predominantly used language.
Microsoft.Skills.Text.MergeSkill Consolidates text from a collection of fields into a single field.
Microsoft.Skills.Text.EntityRecognitionSkill This skill uses a pretrained model to establish entities for a fixed set of categories: people, location, organization, emails, URLs, datetime fields.
Microsoft.Skills.Text.PIIDetectionSkill This skill uses a pretrained model to extract personal information from a given text. The skill also gives various options for masking the detected personal information entities in the text.
Microsoft.Skills.Text.SentimentSkill This skill uses a pretrained model to score positive or negative sentiment on a record by record basis. The score is between 0 and 1. Neutral scores occur for both the null case when sentiment cannot be detected, and for text that is considered neutral.
Microsoft.Skills.Text.SplitSkill Splits text into pages so that you can enrich or augment content incrementally.
Microsoft.Skills.Text.TranslationSkill This skill uses a pretrained model to translate the input text into a variety of languages for normalization or localization use cases.
Microsoft.Skills.Vision.ImageAnalysisSkill This skill uses an image detection algorithm to identify the content of an image and generate a text description.
Microsoft.Skills.Vision.OcrSkill Optical character recognition.
Microsoft.Skills.Util.ConditionalSkill Allows filtering, assigning a default value, and merging data based on a condition.
Microsoft.Skills.Util.DocumentExtractionSkill Extracts content from a file within the enrichment pipeline.
Microsoft.Skills.Util.ShaperSkill Maps output to a complex type (a multi-part data type, which might be used for a full name, a multi-line address, or a combination of last name and a personal identifier.)
Microsoft.Skills.Custom.WebApiSkill Allows extensibility of an AI enrichment pipeline by making an HTTP call into a custom Web API
Microsoft.Skills.Custom.AmlSkill Allows extensibility of an AI enrichment pipeline with an Azure Machine Learning model

For guidance on creating a custom skill, see How to define a custom interface and Example: Creating a custom skill for AI enrichment.

See also