public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.CloudSearch.Model.IndexDocumentsRequest(); if (cmdletContext.DomainName != null) { request.DomainName = cmdletContext.DomainName; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return output; }
/// <summary> /// Initiates the asynchronous execution of the IndexDocuments operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the IndexDocuments operation on AmazonCloudSearchClient.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndIndexDocuments /// operation.</returns> public IAsyncResult BeginIndexDocuments(IndexDocumentsRequest request, AsyncCallback callback, object state) { var marshaller = new IndexDocumentsRequestMarshaller(); var unmarshaller = IndexDocumentsResponseUnmarshaller.Instance; return BeginInvoke<IndexDocumentsRequest>(request, marshaller, unmarshaller, callback, state); }
/// <summary> /// Tells the search domain to start indexing its documents using the latest indexing /// options. This operation must be invoked to activate options whose <a>OptionStatus</a> /// is <code>RequiresIndexDocuments</code>. /// </summary> /// <param name="request">Container for the necessary parameters to execute the IndexDocuments service method.</param> /// /// <returns>The response from the IndexDocuments service method, as returned by CloudSearch.</returns> /// <exception cref="Amazon.CloudSearch.Model.BaseException"> /// An error occurred while processing the request. /// </exception> /// <exception cref="Amazon.CloudSearch.Model.InternalException"> /// An internal error occurred while processing the request. If this problem persists, /// report an issue from the <a href="http://status.aws.amazon.com/" target="_blank">Service /// Health Dashboard</a>. /// </exception> /// <exception cref="Amazon.CloudSearch.Model.ResourceNotFoundException"> /// The request was rejected because it attempted to reference a resource that does not /// exist. /// </exception> public IndexDocumentsResponse IndexDocuments(IndexDocumentsRequest request) { var marshaller = new IndexDocumentsRequestMarshaller(); var unmarshaller = IndexDocumentsResponseUnmarshaller.Instance; return Invoke<IndexDocumentsRequest,IndexDocumentsResponse>(request, marshaller, unmarshaller); }
IAsyncResult invokeIndexDocuments(IndexDocumentsRequest indexDocumentsRequest, AsyncCallback callback, object state, bool synchronized) { IRequest irequest = new IndexDocumentsRequestMarshaller().Marshall(indexDocumentsRequest); var unmarshaller = IndexDocumentsResponseUnmarshaller.GetInstance(); AsyncResult result = new AsyncResult(irequest, callback, state, synchronized, signer, unmarshaller); Invoke(result); return result; }
/// <summary> /// Initiates the asynchronous execution of the IndexDocuments operation. /// <seealso cref="Amazon.CloudSearch.IAmazonCloudSearch.IndexDocuments"/> /// </summary> /// /// <param name="indexDocumentsRequest">Container for the necessary parameters to execute the IndexDocuments operation on /// AmazonCloudSearch.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndIndexDocuments /// operation.</returns> public IAsyncResult BeginIndexDocuments(IndexDocumentsRequest indexDocumentsRequest, AsyncCallback callback, object state) { return invokeIndexDocuments(indexDocumentsRequest, callback, state, false); }
/// <summary> /// <para>Tells the search domain to start indexing its documents using the latest indexing options. This operation must be invoked to activate /// options whose OptionStatus is <c>RequiresIndexDocuments</c> .</para> /// </summary> /// /// <param name="indexDocumentsRequest">Container for the necessary parameters to execute the IndexDocuments service method on /// AmazonCloudSearch.</param> /// /// <returns>The response from the IndexDocuments service method, as returned by AmazonCloudSearch.</returns> /// /// <exception cref="InternalException"/> /// <exception cref="ResourceNotFoundException"/> /// <exception cref="BaseException"/> public IndexDocumentsResponse IndexDocuments(IndexDocumentsRequest indexDocumentsRequest) { IAsyncResult asyncResult = invokeIndexDocuments(indexDocumentsRequest, null, null, true); return EndIndexDocuments(asyncResult); }
public void CreateIndex(string name, IEnumerable<IFieldDefinition> fieldDefinitions) { //You must add here your accessKey and SecretAccessKey. See here how to get them: http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSGettingStartedGuide/AWSCredentials.html using (IAmazonCloudSearch cloudSearchClient = AWSClientFactory.CreateAmazonCloudSearchClient(AmazonSearchService.AwsAccessKey, AmazonSearchService.AwsSecretAccessKey, RegionEndpoint.EUWest1)) { try { CreateDomainRequest domainRequest = new CreateDomainRequest(); domainRequest.DomainName = name; cloudSearchClient.CreateDomain(domainRequest); if (fieldDefinitions == null) throw new ArgumentNullException("fieldDefinitions"); foreach (var fieldDefinition in fieldDefinitions) { DefineIndexFieldRequest request = new DefineIndexFieldRequest(); request.DomainName = name; request.IndexField = new IndexField(); request.IndexField.IndexFieldName = fieldDefinition.Name.ToUpperInvariant(); if (fieldDefinition.Type == null || fieldDefinition.Type == typeof(string)) request.IndexField.IndexFieldType = IndexFieldType.Text; if (fieldDefinition.Type == typeof(string[])) request.IndexField.IndexFieldType = IndexFieldType.TextArray; if (fieldDefinition.Type == typeof(int)) request.IndexField.IndexFieldType = IndexFieldType.Int; if (fieldDefinition.Type == typeof(DateTime)) request.IndexField.IndexFieldType = IndexFieldType.Date; cloudSearchClient.DefineIndexField(request); } SearchResults searchResults = new SearchResults(); foreach (var field in searchResults.HighlightedFields) { Suggester suggester = new Suggester(); DocumentSuggesterOptions suggesterOptions = new DocumentSuggesterOptions(); suggesterOptions.FuzzyMatching = SuggesterFuzzyMatching.None; suggesterOptions.SourceField = field.ToUpperInvariant(); suggester.DocumentSuggesterOptions = suggesterOptions; suggester.SuggesterName = field.ToUpperInvariant() + "_suggester"; DefineSuggesterRequest defineRequest = new DefineSuggesterRequest(); defineRequest.DomainName = name; defineRequest.Suggester = suggester; cloudSearchClient.DefineSuggester(defineRequest); } searchResults.Dispose(); IndexDocumentsRequest documentRequest = new IndexDocumentsRequest(); documentRequest.DomainName = name; cloudSearchClient.IndexDocuments(documentRequest); } catch (BaseException ex) { Log.Write(ex.InnerException.Message); } catch (LimitExceededException ex) { Log.Write(ex.InnerException.Message); } catch (InternalException ex) { Log.Write(ex.InnerException.Message); } } }
/// <summary> /// Initiates the asynchronous execution of the IndexDocuments operation. /// <seealso cref="Amazon.CloudSearch.IAmazonCloudSearch.IndexDocuments"/> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the IndexDocuments operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public async Task<IndexDocumentsResponse> IndexDocumentsAsync(IndexDocumentsRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new IndexDocumentsRequestMarshaller(); var unmarshaller = IndexDocumentsResponseUnmarshaller.GetInstance(); var response = await Invoke<IRequest, IndexDocumentsRequest, IndexDocumentsResponse>(request, marshaller, unmarshaller, signer, cancellationToken) .ConfigureAwait(continueOnCapturedContext: false); return response; }
/// <summary> /// <para>Tells the search domain to start indexing its documents using the latest text processing options and <c>IndexFields</c> . This /// operation must be invoked to make options whose OptionStatus has <c>OptionState</c> of <c>RequiresIndexDocuments</c> visible in search /// results.</para> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the IndexDocuments service method on /// AmazonCloudSearch.</param> /// /// <returns>The response from the IndexDocuments service method, as returned by AmazonCloudSearch.</returns> /// /// <exception cref="T:Amazon.CloudSearch.Model.BaseException" /> /// <exception cref="T:Amazon.CloudSearch.Model.ResourceNotFoundException" /> /// <exception cref="T:Amazon.CloudSearch.Model.InternalException" /> public IndexDocumentsResponse IndexDocuments(IndexDocumentsRequest request) { var task = IndexDocumentsAsync(request); try { return task.Result; } catch(AggregateException e) { throw e.InnerException; } }
/// <summary> /// Initiates the asynchronous execution of the IndexDocuments operation. /// <seealso cref="Amazon.CloudSearch.IAmazonCloudSearch.IndexDocuments"/> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the IndexDocuments operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<IndexDocumentsResponse> IndexDocumentsAsync(IndexDocumentsRequest request, CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new IndexDocumentsRequestMarshaller(); var unmarshaller = IndexDocumentsResponseUnmarshaller.GetInstance(); return Invoke<IRequest, IndexDocumentsRequest, IndexDocumentsResponse>(request, marshaller, unmarshaller, signer, cancellationToken); }
private Amazon.CloudSearch.Model.IndexDocumentsResponse CallAWSServiceOperation(IAmazonCloudSearch client, Amazon.CloudSearch.Model.IndexDocumentsRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon CloudSearch", "IndexDocuments"); try { #if DESKTOP return client.IndexDocuments(request); #elif CORECLR return client.IndexDocumentsAsync(request).GetAwaiter().GetResult(); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }
internal IndexDocumentsResponse IndexDocuments(IndexDocumentsRequest request) { var task = IndexDocumentsAsync(request); try { return task.Result; } catch(AggregateException e) { ExceptionDispatchInfo.Capture(e.InnerException).Throw(); return null; } }
/// <summary> /// Initiates the asynchronous execution of the IndexDocuments operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the IndexDocuments operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<IndexDocumentsResponse> IndexDocumentsAsync(IndexDocumentsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new IndexDocumentsRequestMarshaller(); var unmarshaller = IndexDocumentsResponseUnmarshaller.Instance; return InvokeAsync<IndexDocumentsRequest,IndexDocumentsResponse>(request, marshaller, unmarshaller, cancellationToken); }