public DocumentSearchClient(IConfiguration configuration, bool videoIndexerTimeRefs = false) { try { _configuration = configuration; searchServiceName = configuration.GetSection("SearchServiceName")?.Value; apiKey = configuration.GetSection("SearchApiKey")?.Value; IndexName = videoIndexerTimeRefs ? configuration.GetSection("SearchIndexNameVideoIndexerTimeRef")?.Value : configuration.GetSection("SearchIndexName")?.Value; IndexerName = configuration.GetSection("SearchIndexerName")?.Value; idField = configuration.GetSection("KeyField")?.Value; telemetryClient.InstrumentationKey = configuration.GetSection("InstrumentationKey")?.Value; // Options used to get a search id for reporting SearchClientOptions clientOptions = new SearchClientOptions(); clientOptions.AddPolicy(new SearchIdPipelinePolicy(), HttpPipelinePosition.PerCall); // Create an HTTP reference to the catalog index _searchIndexClient = new SearchIndexClient(new Uri($"https://{searchServiceName}.search.windows.net/"), new AzureKeyCredential(apiKey), options: clientOptions); _searchClient = _searchIndexClient.GetSearchClient(IndexName); Schema = new SearchSchema().AddFields(_searchIndexClient.GetIndex(IndexName).Value.Fields); Model = new SearchModel(Schema); _isPathBase64Encoded = (configuration.GetSection("IsPathBase64Encoded")?.Value == "True"); } catch (Exception e) { // If you get an exception here, most likely you have not set your // credentials correctly in appsettings.json throw new ArgumentException(e.Message.ToString()); } }
public async Task IndexSharesPipeline() { await using SearchResources resources = await SearchResources.GetSharedHotelsIndexAsync(this); TestPipelinePolicy custom = new TestPipelinePolicy(); Assert.AreEqual(0, custom.RequestCount); SearchClientOptions options = new SearchClientOptions(ServiceVersion); options.AddPolicy(custom, HttpPipelinePosition.PerCall); SearchServiceClient client = resources.GetServiceClient(options); SearchIndexClient index = client.GetSearchIndexClient(resources.IndexName); _ = await index.GetDocumentCountAsync(); Assert.AreEqual(1, custom.RequestCount); }