public static SplitSkill CreateSplitSkill() { List <InputFieldMappingEntry> inputMappings = new List <InputFieldMappingEntry>(); inputMappings.Add(new InputFieldMappingEntry("text") { Source = "/document/merged_text" }); inputMappings.Add(new InputFieldMappingEntry("languageCode") { Source = "/document/languageCode" }); List <OutputFieldMappingEntry> outputMappings = new List <OutputFieldMappingEntry>(); outputMappings.Add(new OutputFieldMappingEntry("textItems") { TargetName = "pages", }); SplitSkill splitSkill = new SplitSkill(inputMappings, outputMappings) { Description = "Split content into pages", Context = "/document", TextSplitMode = TextSplitMode.Pages, MaximumPageLength = 4000, DefaultLanguageCode = SplitSkillLanguage.En }; return(splitSkill); }
private static SplitSkill CreateSplitSkill() { List <InputFieldMappingEntry> inputMappings = new List <InputFieldMappingEntry>(); inputMappings.Add(new InputFieldMappingEntry( name: "text", source: "/document/merged_text")); inputMappings.Add(new InputFieldMappingEntry( name: "languageCode", source: "/document/languageCode")); List <OutputFieldMappingEntry> outputMappings = new List <OutputFieldMappingEntry>(); outputMappings.Add(new OutputFieldMappingEntry( name: "textItems", targetName: "pages")); SplitSkill splitSkill = new SplitSkill( description: "Split content into pages", context: "/document", inputs: inputMappings, outputs: outputMappings, textSplitMode: TextSplitMode.Pages, maximumPageLength: 4000); return(splitSkill); }
public async Task <string> CreateIndexAndIndexerAsync() { // Create or Update the data source SearchIndexerDataSourceConnection dataSource = CreateOrUpdateDataSource(_indexerClient); // Create the skills OcrSkill ocrSkill = CreateOcrSkill(); MergeSkill mergeSkill = CreateMergeSkill(); EntityRecognitionSkill entityRecognitionSkill = CreateEntityRecognitionSkill(); LanguageDetectionSkill languageDetectionSkill = CreateLanguageDetectionSkill(); SplitSkill splitSkill = CreateSplitSkill(); KeyPhraseExtractionSkill keyPhraseExtractionSkill = CreateKeyPhraseExtractionSkill(); // Create the skillset List <SearchIndexerSkill> skills = new List <SearchIndexerSkill>(); skills.Add(ocrSkill); skills.Add(mergeSkill); skills.Add(languageDetectionSkill); skills.Add(splitSkill); skills.Add(entityRecognitionSkill); skills.Add(keyPhraseExtractionSkill); SearchIndexerSkillset skillset = CreateOrUpdateDemoSkillSet(_indexerClient, skills, _cognitiveServicesKey); // Create the index SearchIndex demoIndex = await CreateDemoIndexAsync(_indexClient); // Create the indexer, map fields, and execute transformations SearchIndexer demoIndexer = await CreateDemoIndexerAsync(_indexerClient, dataSource, skillset, demoIndex); // Check indexer overall status return(await CheckIndexerOverallStatusAsync(_indexerClient, demoIndexer.Name)); }
public static void Main(string[] args) { // Create service client IConfigurationBuilder builder = new ConfigurationBuilder().AddJsonFile("appsettings.json"); IConfigurationRoot configuration = builder.Build(); string searchServiceUri = configuration["SearchServiceUri"]; string adminApiKey = configuration["SearchServiceAdminApiKey"]; string cognitiveServicesKey = configuration["CognitiveServicesKey"]; SearchIndexClient indexClient = new SearchIndexClient(new Uri(searchServiceUri), new AzureKeyCredential(adminApiKey)); SearchIndexerClient indexerClient = new SearchIndexerClient(new Uri(searchServiceUri), new AzureKeyCredential(adminApiKey)); // Create or Update the data source Console.WriteLine("Creating or updating the data source..."); SearchIndexerDataSourceConnection dataSource = CreateOrUpdateDataSource(indexerClient, configuration); // Create the skills Console.WriteLine("Creating the skills..."); OcrSkill ocrSkill = CreateOcrSkill(); MergeSkill mergeSkill = CreateMergeSkill(); EntityRecognitionSkill entityRecognitionSkill = CreateEntityRecognitionSkill(); LanguageDetectionSkill languageDetectionSkill = CreateLanguageDetectionSkill(); SplitSkill splitSkill = CreateSplitSkill(); KeyPhraseExtractionSkill keyPhraseExtractionSkill = CreateKeyPhraseExtractionSkill(); // Create the skillset Console.WriteLine("Creating or updating the skillset..."); List <SearchIndexerSkill> skills = new List <SearchIndexerSkill>(); skills.Add(ocrSkill); skills.Add(mergeSkill); skills.Add(languageDetectionSkill); skills.Add(splitSkill); skills.Add(entityRecognitionSkill); skills.Add(keyPhraseExtractionSkill); SearchIndexerSkillset skillset = CreateOrUpdateDemoSkillSet(indexerClient, skills, cognitiveServicesKey); // Create the index Console.WriteLine("Creating the index..."); SearchIndex demoIndex = CreateDemoIndex(indexClient); // Create the indexer, map fields, and execute transformations Console.WriteLine("Creating the indexer and executing the pipeline..."); SearchIndexer demoIndexer = CreateDemoIndexer(indexerClient, dataSource, skillset, demoIndex); // Check indexer overall status Console.WriteLine("Check the indexer overall status..."); CheckIndexerOverallStatus(indexerClient, demoIndexer); }
static void Main(string[] args) { Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.Cyan; // Step 1 - Create datasource Console.WriteLine("\nStep 1 - Creating the data source..."); IConfigurationBuilder builder = new ConfigurationBuilder().AddJsonFile("appsettings.json"); IConfigurationRoot configuration = builder.Build(); string searchServiceUri = configuration["SearchServiceUri"]; string cognitiveServicesKey = configuration["CognitiveServicesKey"]; string adminApiKey = configuration["SearchServiceAdminApiKey"]; SearchIndexClient indexClient = new SearchIndexClient(new Uri(searchServiceUri), new AzureKeyCredential(adminApiKey)); SearchIndexerClient indexerClient = new SearchIndexerClient(new Uri(searchServiceUri), new AzureKeyCredential(adminApiKey)); SearchIndexerDataSourceConnection dataSource = CreateOrUpdateDataSource(indexerClient, configuration); // Step 2 - Create the skillset Console.WriteLine("\nStep 2 - Creating the skillset..."); Console.WriteLine("\tStep 2.1 - Adding the skills..."); Console.WriteLine("\t\t OCR skill"); OcrSkill ocrSkill = CreateOcrSkill(); Console.WriteLine("\t\t Merge skill"); MergeSkill mergeSkill = CreateMergeSkill(); Console.WriteLine("\t\t Entity recognition skill"); EntityRecognitionSkill entityRecognitionSkill = CreateEntityRecognitionSkill(); Console.WriteLine("\t\t Language detection skill"); LanguageDetectionSkill languageDetectionSkill = CreateLanguageDetectionSkill(); Console.WriteLine("\t\t Split skill"); SplitSkill splitSkill = CreateSplitSkill(); Console.WriteLine("\t\t Key phrase skill"); KeyPhraseExtractionSkill keyPhraseExtractionSkill = CreateKeyPhraseExtractionSkill(); List <SearchIndexerSkill> skills = new List <SearchIndexerSkill>(); skills.Add(ocrSkill); skills.Add(mergeSkill); skills.Add(languageDetectionSkill); skills.Add(splitSkill); skills.Add(entityRecognitionSkill); skills.Add(keyPhraseExtractionSkill); Console.WriteLine("\tStep 2.2 - Building the skillset..."); SearchIndexerSkillset skillset = CreateOrUpdateDemoSkillSet(indexerClient, skills, cognitiveServicesKey); // Step 3 - Create the index Console.WriteLine("\nStep 3 - Creating the index..."); SearchIndex demoIndex = CreateDemoIndex(indexClient); // Step 4 - Create the indexer, map fields, and execute transformations Console.WriteLine("\nStep 4 - Creating the indexer and executing the pipeline..."); SearchIndexer demoIndexer = CreateDemoIndexer(indexerClient, dataSource, skillset, demoIndex); // Step 5 - Monitor the indexing process Console.WriteLine("\nStep 5 - Check the indexer overall status..."); CheckIndexerOverallStatus(indexerClient, demoIndexer); }