Exemplo n.º 1
0
        public static async Task CreateSearchIndexerAsync(
            string serviceAdminKey, string searchSvcUrl,
            string cognitiveServiceKey,
            string indexName, string jsonFieldsFilePath,
            string blobConnectionString, string blobContainerName
            )
        {
            // Its a temporary arrangment.  This function is not complete
            IEnumerable <SearchField> fields = SearchHelper.LoadFieldsFromJSonFile(jsonFieldsFilePath);

            // create index
            var searchIndex = await Search.Search.CreateSearchIndexAsync(serviceAdminKey, searchSvcUrl, indexName, fields.ToList());

            // get indexer client
            var indexerClient = Search.Search.GetSearchIndexerClient(serviceAdminKey, searchSvcUrl);

            // create azure blob data source
            var dataSource = await Search.Search.CreateOrUpdateAzureBlobDataSourceAsync(indexerClient, blobConnectionString, indexName, blobContainerName);

            // create indexer

            // create skill set with minimal skills
            List <SearchIndexerSkill> skills = new List <SearchIndexerSkill>();

            skills.Add(Skills.CreateEntityRecognitionSkill());
            skills.Add(Skills.CreateLanguageDetectionSkill());

            var skillSet = await Search.Search.CreateOrUpdateSkillSetAsync(indexerClient,
                                                                           indexName + "-skillset", skills, cognitiveServiceKey);

            var indexer = await Search.Search.CreateIndexerAsync(indexerClient, dataSource, skillSet, searchIndex);

            // wait for some time to have indexer run and load documents
            Thread.Sleep(TimeSpan.FromSeconds(20));

            await Search.Search.CheckIndexerOverallStatusAsync(indexerClient, indexer);
        }