コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }