Skip to content

Commit 10e3805

Browse files
author
Ryan Wike
committed
fixed merge conflict
2 parents 832167f + 4be55fb commit 10e3805

16 files changed

+113
-72
lines changed

articles/search/.openpublishing.redirection.search.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@
99
"source_path_from_root": "/articles/search/cognitive-search-quickstart-blob.md",
1010
"redirect_url": "/azure/search/search-get-started-skillset",
1111
"redirect_document_id": true
12+
},
13+
{
14+
"source_path_from_root": "/articles/search/cognitive-search-tutorial-blob.md",
15+
"redirect_url": "/azure/search/tutorial-skillset",
16+
"redirect_document_id": true
17+
},
18+
{
19+
"source_path_from_root": "/articles/search/cognitive-search-tutorial-blob-dotnet.md",
20+
"redirect_url": "/azure/search/tutorial-skillset",
21+
"redirect_document_id": false
1222
},
1323
{
1424
"source_path_from_root": "/articles/search/search-howto-connecting-azure-sql-database-to-azure-search-using-indexers.md",

articles/search/chat-completion-skill-example-usage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ This section supplements the [skill reference](cognitive-search-defining-skillse
117117
Once the basic framework of your skillset is created and Azure AI services is configured, you can focus on each individual image skill, defining inputs and source context, and mapping outputs to fields in either an index or knowledge store.
118118

119119
> [!NOTE]
120-
> For an example skillset that combines image processing with downstream natural language processing, see [REST Tutorial: Use REST and AI to generate searchable content from Azure blobs](cognitive-search-tutorial-blob.md). It shows how to feed skill imaging output into entity recognition and key phrase extraction.
120+
> For an example skillset that combines image processing with downstream natural language processing, see [REST Tutorial: Use REST and AI to generate searchable content from Azure blobs](tutorial-skillset.md). It shows how to feed skill imaging output into entity recognition and key phrase extraction.
121121
122122
### Example inputs for image processing
123123

articles/search/cognitive-search-concept-image-scenarios.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ This section supplements the [skill reference](cognitive-search-predefined-skill
166166
Once the basic framework of your skillset is created and Azure AI services is configured, you can focus on each individual image skill, defining inputs and source context, and mapping outputs to fields in either an index or knowledge store.
167167

168168
> [!NOTE]
169-
> For an example skillset that combines image processing with downstream natural language processing, see [REST Tutorial: Use REST and AI to generate searchable content from Azure blobs](cognitive-search-tutorial-blob.md). It shows how to feed skill imaging output into entity recognition and key phrase extraction.
169+
> For an example skillset that combines image processing with downstream natural language processing, see [REST Tutorial: Use REST and AI to generate searchable content from Azure blobs](tutorial-skillset.md). It shows how to feed skill imaging output into entity recognition and key phrase extraction.
170170
171171
### Inputs for image processing
172172

articles/search/cognitive-search-concept-intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ To repeat any of the above steps, [reset the indexer](search-howto-reindex.md) b
135135
## Next steps
136136

137137
+ [Quickstart: Create a skillset for AI enrichment](search-get-started-skillset.md)
138-
+ [Tutorial: Learn about the AI enrichment REST APIs](cognitive-search-tutorial-blob.md)
138+
+ [Tutorial: Learn about the AI enrichment REST APIs](tutorial-skillset.md)
139139
+ [Skillset concepts](cognitive-search-working-with-skillsets.md)
140140
+ [Knowledge store concepts](knowledge-store-concept-intro.md)
141141
+ [Create a skillset](cognitive-search-defining-skillset.md)

articles/search/cognitive-search-concept-troubleshooting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ For [parallel indexing](search-howto-large-index.md), distribute your data into
7171
## See also
7272

7373
+ [Quickstart: Create an AI enrichment pipeline in the Azure portal](search-get-started-skillset.md)
74-
+ [Tutorial: Learn AI enrichment REST APIs](cognitive-search-tutorial-blob.md)
74+
+ [Tutorial: Learn AI enrichment REST APIs](tutorial-skillset.md)
7575
+ [How to configure blob indexers](search-howto-indexing-azure-blob-storage.md)
7676
+ [How to define a skillset](cognitive-search-defining-skillset.md)
7777
+ [How to map enriched fields to an index](cognitive-search-output-field-mapping.md)

articles/search/cognitive-search-predefined-skills.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,4 @@ For guidance on creating a custom skill, see [Define a custom interface](cogniti
8181

8282
+ [How to define a skillset](cognitive-search-defining-skillset.md)
8383
+ [Custom Skills interface definition](cognitive-search-custom-skill-interface.md)
84-
+ [Tutorial: Enriched indexing with AI](cognitive-search-tutorial-blob.md)
84+
+ [Tutorial: Enriched indexing with AI](tutorial-skillset.md)

articles/search/cognitive-search-tutorial-blob-dotnet.md renamed to articles/search/includes/tutorials/skillset-csharp.md

Lines changed: 35 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
---
2-
title: 'Tutorial: Skillsets Using C#'
3-
titleSuffix: Azure AI Search
4-
description: Use C# and the Azure SDK for .NET to create skillsets. This skillset applies AI transformations and analyses to create searchable content from images and unstructured text.
5-
2+
manager: nitinme
63
author: HeidiSteen
74
ms.author: heidist
8-
manager: nitinme
9-
105
ms.service: azure-ai-search
11-
ms.topic: tutorial
6+
ms.topic: include
127
ms.date: 07/11/2025
8+
<<<<<<< HEAD:articles/search/cognitive-search-tutorial-blob-dotnet.md
139
ms.custom:
1410
- devx-track-csharp
1511
- devx-track-dotnet
1612
- ignite-2023
1713
- sfi-ropc-nochange
14+
=======
15+
>>>>>>> 4be55fb43900f8edc6df3ee32d2940b027a25ee4:articles/search/includes/tutorials/skillset-csharp.md
1816
---
1917

20-
# C# Tutorial: Use skillsets to generate searchable content in Azure AI Search
21-
22-
Learn how to use the [Azure SDK for .NET](https://www.nuget.org/packages/Azure.Search.Documents/) to create an [AI enrichment pipeline](cognitive-search-concept-intro.md) for content extraction and transformations during indexing.
18+
Learn how to use the [Azure SDK for .NET](https://www.nuget.org/packages/Azure.Search.Documents/) to create an [AI enrichment pipeline](../../cognitive-search-concept-intro.md) for content extraction and transformations during indexing.
2319

2420
Skillsets add AI processing to raw content, making it more uniform and searchable. Once you know how skillsets work, you can support a broad range of transformations, from image analysis to natural language processing to customized processing that you provide externally.
2521

@@ -35,17 +31,17 @@ In this tutorial, you:
3531

3632
This tutorial uses C# and the [**Azure.Search.Documents**](/dotnet/api/overview/azure/search.documents-readme) client library to create a data source, index, indexer, and skillset.
3733

38-
The [indexer](search-indexer-overview.md) drives each step in the pipeline, starting with content extraction of sample data (unstructured text and images) in a blob container on Azure Storage.
34+
The [indexer](../../search-indexer-overview.md) drives each step in the pipeline, starting with content extraction of sample data (unstructured text and images) in a blob container on Azure Storage.
3935

40-
Once content is extracted, the [skillset](cognitive-search-working-with-skillsets.md) executes built-in skills from Microsoft to find and extract information. These skills include Optical Character Recognition (OCR) on images, language detection on text, key phrase extraction, and entity recognition (organizations). New information created by the skillset is sent to fields in an [index](search-what-is-an-index.md). Once the index is populated, you can use the fields in queries, facets, and filters.
36+
Once content is extracted, the [skillset](../../cognitive-search-working-with-skillsets.md) executes built-in skills from Microsoft to find and extract information. These skills include Optical Character Recognition (OCR) on images, language detection on text, key phrase extraction, and entity recognition (organizations). New information created by the skillset is sent to fields in an [index](../../search-what-is-an-index.md). Once the index is populated, you can use the fields in queries, facets, and filters.
4137

4238
## Prerequisites
4339

4440
+ An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
4541

4642
+ [Azure Storage](/azure/storage/common/storage-account-create).
4743

48-
+ [Azure AI Search](search-create-app-portal.md).
44+
+ [Azure AI Search](../../search-create-service-portal.md).
4945

5046
+ [Azure.Search.Documents package](https://www.nuget.org/packages/Azure.Search.Documents).
5147

@@ -78,7 +74,7 @@ Once content is extracted, the [skillset](cognitive-search-working-with-skillset
7874
7975
### Azure AI services
8076
81-
Built-in AI enrichment is backed by Azure AI services, including Language service and Azure AI Vision for natural language and image processing. For small workloads like this tutorial, you can use the free allocation of 20 transactions per indexer. For larger workloads, [attach an Azure AI Services multi-region resource to a skillset](cognitive-search-attach-cognitive-services.md) for Standard pricing.
77+
Built-in AI enrichment is backed by Azure AI services, including Language service and Azure AI Vision for natural language and image processing. For small workloads like this tutorial, you can use the free allocation of 20 transactions per indexer. For larger workloads, [attach an Azure AI Services multi-region resource to a skillset](../../cognitive-search-attach-cognitive-services.md) for Standard pricing.
8278
8379
### Copy a search service URL and API key
8480
@@ -238,29 +234,29 @@ SearchIndexerDataSourceConnection dataSource = CreateOrUpdateDataSource(indexerC
238234

239235
Build and run the solution. Since this is your first request, check the Azure portal to confirm the data source was created in Azure AI Search. On the search service overview page, verify the Data Sources list has a new item. You might need to wait a few minutes for the Azure portal page to refresh.
240236

241-
![Data sources tile in the Azure portal](./media/cognitive-search-tutorial-blob/data-source-tile.png "Data sources tile in the Azure portal")
237+
![Data sources tile in the Azure portal](../../media/cognitive-search-tutorial-blob/data-source-tile.png "Data sources tile in the Azure portal")
242238

243239
### Step 2: Create a skillset
244240

245-
In this section, you define a set of enrichment steps that you want to apply to your data. Each enrichment step is called a *skill* and the set of enrichment steps, a *skillset*. This tutorial uses [built-in skills](cognitive-search-predefined-skills.md) for the skillset:
241+
In this section, you define a set of enrichment steps that you want to apply to your data. Each enrichment step is called a *skill* and the set of enrichment steps, a *skillset*. This tutorial uses [built-in skills](../../cognitive-search-predefined-skills.md) for the skillset:
246242

247-
* [Optical Character Recognition](cognitive-search-skill-ocr.md) to recognize printed and handwritten text in image files.
243+
* [Optical Character Recognition](../../cognitive-search-skill-ocr.md) to recognize printed and handwritten text in image files.
248244

249-
* [Text Merger](cognitive-search-skill-textmerger.md) to consolidate text from a collection of fields into a single "merged content" field.
245+
* [Text Merger](../../cognitive-search-skill-textmerger.md) to consolidate text from a collection of fields into a single "merged content" field.
250246

251-
* [Language Detection](cognitive-search-skill-language-detection.md) to identify the content's language.
247+
* [Language Detection](../../cognitive-search-skill-language-detection.md) to identify the content's language.
252248

253-
* [Entity Recognition](cognitive-search-skill-entity-recognition-v3.md) for extracting the names of organizations from content in the blob container.
249+
* [Entity Recognition](../../cognitive-search-skill-entity-recognition-v3.md) for extracting the names of organizations from content in the blob container.
254250

255-
* [Text Split](cognitive-search-skill-textsplit.md) to break large content into smaller chunks before calling the key phrase extraction skill and the entity recognition skill. Key phrase extraction and entity recognition accept inputs of 50,000 characters or less. A few of the sample files need splitting up to fit within this limit.
251+
* [Text Split](../../cognitive-search-skill-textsplit.md) to break large content into smaller chunks before calling the key phrase extraction skill and the entity recognition skill. Key phrase extraction and entity recognition accept inputs of 50,000 characters or less. A few of the sample files need splitting up to fit within this limit.
256252

257-
* [Key Phrase Extraction](cognitive-search-skill-keyphrases.md) to pull out the top key phrases.
253+
* [Key Phrase Extraction](../../cognitive-search-skill-keyphrases.md) to pull out the top key phrases.
258254

259255
During initial processing, Azure AI Search cracks each document to extract content from different file formats. Text originating in the source file is placed into a generated `content` field, one for each document. As such, set the input as `"/document/content"` to use this text. Image content is placed into a generated `normalized_images` field, specified in a skillset as `/document/normalized_images/*`.
260256

261257
Outputs can be mapped to an index, used as input to a downstream skill, or both as is the case with language code. In the index, a language code is useful for filtering. As an input, language code is used by text analysis skills to inform the linguistic rules around word breaking.
262258

263-
For more information about skillset fundamentals, see [How to define a skillset](cognitive-search-defining-skillset.md).
259+
For more information about skillset fundamentals, see [How to define a skillset](../../cognitive-search-defining-skillset.md).
264260

265261
### OCR skill
266262

@@ -635,13 +631,13 @@ To learn more about index concepts, see [Create Index (REST API)](/rest/api/sear
635631

636632
### Step 4: Create and run an indexer
637633

638-
So far you have created a data source, a skillset, and an index. These three components become part of an [indexer](search-indexer-overview.md) that pulls each piece together into a single multi-phased operation. To tie these together in an indexer, you must define field mappings.
634+
So far you have created a data source, a skillset, and an index. These three components become part of an [indexer](../../search-indexer-overview.md) that pulls each piece together into a single multi-phased operation. To tie these together in an indexer, you must define field mappings.
639635

640636
* The fieldMappings are processed before the skillset, mapping source fields from the data source to target fields in an index. If field names and types are the same at both ends, no mapping is required.
641637

642638
* The outputFieldMappings are processed after the skillset, referencing sourceFieldNames that don't exist until document cracking or enrichment creates them. The targetFieldName is a field in an index.
643639

644-
In addition to hooking up inputs to outputs, you can also use field mappings to flatten data structures. For more information, see [How to map enriched fields to a searchable index](cognitive-search-output-field-mapping.md).
640+
In addition to hooking up inputs to outputs, you can also use field mappings to flatten data structures. For more information, see [How to map enriched fields to a searchable index](../../cognitive-search-output-field-mapping.md).
645641

646642
```csharp
647643
private static SearchIndexer CreateDemoIndexer(SearchIndexerClient indexerClient, SearchIndexerDataSourceConnection dataSource, SearchIndexerSkillset skillSet, SearchIndex index)
@@ -785,17 +781,25 @@ CheckIndexerOverallStatus(indexerClient, demoIndexer);
785781

786782
In Azure AI Search tutorial console apps, we typically add a 2-second delay before running queries that return results, but because enrichment takes several minutes to complete, we'll close the console app and use another approach instead.
787783

788-
The easiest option is [Search explorer](search-explorer.md) in the Azure portal. You can first run an empty query that returns all documents, or a more targeted search that returns new field content created by the pipeline.
784+
The easiest option is [Search Explorer](../../search-explorer.md) in the Azure portal. You can first run an empty query that returns all documents, or a more targeted search that returns new field content created by the pipeline.
789785

790-
1. In Azure portal, in the search Overview page, select **Indexes**.
786+
1. In the Azure portal, in the search service pages, expand **Search Management** > **Indexes**.
791787

792788
1. Find **`demoindex`** in the list. It should have 14 documents. If the document count is zero, the indexer is either still running or the page hasn't been refreshed yet.
793789

794-
1. Select **`demoindex`**. Search explorer is the first tab.
790+
1. Select **`demoindex`**. Search Explorer is the first tab.
795791

796792
1. Content is searchable as soon as the first document is loaded. To verify content exists, run an unspecified query by clicking **Search**. This query returns all currently indexed documents, giving you an idea of what the index contains.
797793

798-
1. Next, paste in the following string for more manageable results: `search=*&$select=id, languageCode, organizations`
794+
1. For more manageable results, switch to JSON view and set parameters to select the fields:
795+
796+
```json
797+
{
798+
"search": "*",
799+
"count": true,
800+
"select": "id, languageCode, organizations"
801+
}
802+
```
799803

800804
<a name="reset"></a>
801805

@@ -809,7 +813,7 @@ The sample code for this tutorial checks for existing objects and deletes them s
809813

810814
This tutorial demonstrated the basic steps for building an enriched indexing pipeline through the creation of component parts: a data source, skillset, index, and indexer.
811815

812-
[Built-in skills](cognitive-search-predefined-skills.md) were introduced, along with skillset definition and the mechanics of chaining skills together through inputs and outputs. You also learned that `outputFieldMappings` in the indexer definition is required for routing enriched values from the pipeline into a searchable index on an Azure AI Search service.
816+
[Built-in skills](../../cognitive-search-predefined-skills.md) were introduced, along with skillset definition and the mechanics of chaining skills together through inputs and outputs. You also learned that `outputFieldMappings` in the indexer definition is required for routing enriched values from the pipeline into a searchable index on an Azure AI Search service.
813817

814818
Finally, you learned how to test results and reset the system for further iterations. You learned that issuing queries against the index returns the output created by the enriched indexing pipeline. You also learned how to check indexer status, and which objects to delete before rerunning a pipeline.
815819

@@ -824,4 +828,4 @@ You can find and manage resources in the Azure portal, using the All resources o
824828
Now that you're familiar with all of the objects in an AI enrichment pipeline, let's take a closer look at skillset definitions and individual skills.
825829

826830
> [!div class="nextstepaction"]
827-
> [How to create a skillset](cognitive-search-defining-skillset.md)
831+
> [How to create a skillset](../../cognitive-search-defining-skillset.md)

0 commit comments

Comments
 (0)