private static SearchIndexer CreateDemoIndexer(SearchIndexerClient indexerClient, SearchIndexerDataSourceConnection dataSource, SearchIndexerSkillset skillSet, SearchIndex index) { IndexingParameters indexingParameters = new IndexingParameters() { MaxFailedItems = -1, MaxFailedItemsPerBatch = -1, }; indexingParameters.Configuration.Add("dataToExtract", "contentAndMetadata"); indexingParameters.Configuration.Add("imageAction", "generateNormalizedImages"); SearchIndexer indexer = new SearchIndexer("demoindexer", dataSource.Name, index.Name) { Description = "Demo Indexer", SkillsetName = skillSet.Name, Parameters = indexingParameters }; FieldMappingFunction mappingFunction = new FieldMappingFunction("base64Encode"); mappingFunction.Parameters.Add("useHttpServerUtilityUrlTokenEncode", true); indexer.FieldMappings.Add(new FieldMapping("metadata_storage_path") { TargetFieldName = "id", MappingFunction = mappingFunction }); indexer.FieldMappings.Add(new FieldMapping("content") { TargetFieldName = "content" }); indexer.OutputFieldMappings.Add(new FieldMapping("/document/pages/*/organizations/*") { TargetFieldName = "organizations" }); indexer.OutputFieldMappings.Add(new FieldMapping("/document/pages/*/keyPhrases/*") { TargetFieldName = "keyPhrases" }); indexer.OutputFieldMappings.Add(new FieldMapping("/document/languageCode") { TargetFieldName = "languageCode" }); try { indexerClient.GetIndexer(indexer.Name); indexerClient.DeleteIndexer(indexer.Name); } catch (RequestFailedException ex) when(ex.Status == 404) { //if the specified indexer not exist, 404 will be thrown. } try { indexerClient.CreateIndexer(indexer); } catch (RequestFailedException ex) { Console.WriteLine("Failed to create the indexer\n Exception message: {0}\n", ex.Message); ExitProgram("Cannot continue without creating an indexer"); } return(indexer); }