コード例 #1
0
        private void SetupAzureSearchClient()
        {
            var searchName = CloudConfigurationManager.GetSetting("AzureSearchServiceName") ?? AzureConfiguration.AzureSearchServiceName;
            var searchKey  = CloudConfigurationManager.GetSetting("AzureSearchServiceApiKey") ?? AzureConfiguration.AzureSearchServiceApiKey;

            //create client/index for indexing
            AzureServiceClient = new SearchServiceClient(searchName, new SearchCredentials(searchKey));
            AzureIndexClient   = AzureServiceClient.Indexes.GetClient(Name);
            var retryStrategy = new IncrementalRetryStrategy(AzureConfiguration.AzureSearchRetryCount, TimeSpan.FromSeconds(AzureConfiguration.AzureSearchRetryInitialInterval), TimeSpan.FromSeconds(AzureConfiguration.AzureSearchRetryIncrement));
            var retryPolicy   = new RetryPolicy <AzureErrorIndexDetectionStrategy>(retryStrategy);

            AzureIndexClient.SetRetryPolicy(retryPolicy);

            //create client/index for searching
            AzureSearchClient = AzureServiceClient.Indexes.GetClient(Name);
            //AzureSearchClient.UseHttpGetForQueries = true;
        }
コード例 #2
0
        /// <summary>
        /// This is implemented in lieu of <see cref="IndexesGetClientExtensions.GetClient(IIndexesOperations, string)"/>
        /// because it allows the delegating handlers and retry policy to be specified. See:
        /// https://github.com/Azure/azure-sdk-for-net/blob/96421089bc26198098f320ea50e0208e98376956/sdk/search/Microsoft.Azure.Search/src/IndexesGetClientExtensions.cs#L27-L41
        /// </summary>
        public ISearchIndexClientWrapper GetClient(string indexName)
        {
            var searchIndexClient = new SearchIndexClient(
                _inner.Client.SearchServiceName,
                indexName,
                _inner.Client.SearchCredentials,
                _inner.Client.HttpMessageHandlers.OfType <HttpClientHandler>().SingleOrDefault(),
                _handlers);

            searchIndexClient.SearchDnsSuffix    = _inner.Client.SearchDnsSuffix;
            searchIndexClient.HttpClient.Timeout = _inner.Client.HttpClient.Timeout;

            if (_retryPolicy != null)
            {
                searchIndexClient.SetRetryPolicy(_retryPolicy);
            }

            return(new SearchIndexClientWrapper(searchIndexClient, _documentsOperationsLogger));
        }