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); } } }
public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.CloudSearch.Model.DefineSuggesterRequest(); if (cmdletContext.DomainName != null) { request.DomainName = cmdletContext.DomainName; } // populate Suggester var requestSuggesterIsNull = true; request.Suggester = new Amazon.CloudSearch.Model.Suggester(); System.String requestSuggester_suggester_SuggesterName = null; if (cmdletContext.Suggester_SuggesterName != null) { requestSuggester_suggester_SuggesterName = cmdletContext.Suggester_SuggesterName; } if (requestSuggester_suggester_SuggesterName != null) { request.Suggester.SuggesterName = requestSuggester_suggester_SuggesterName; requestSuggesterIsNull = false; } Amazon.CloudSearch.Model.DocumentSuggesterOptions requestSuggester_suggester_DocumentSuggesterOptions = null; // populate DocumentSuggesterOptions var requestSuggester_suggester_DocumentSuggesterOptionsIsNull = true; requestSuggester_suggester_DocumentSuggesterOptions = new Amazon.CloudSearch.Model.DocumentSuggesterOptions(); Amazon.CloudSearch.SuggesterFuzzyMatching requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_FuzzyMatching = null; if (cmdletContext.DocumentSuggesterOptions_FuzzyMatching != null) { requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_FuzzyMatching = cmdletContext.DocumentSuggesterOptions_FuzzyMatching; } if (requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_FuzzyMatching != null) { requestSuggester_suggester_DocumentSuggesterOptions.FuzzyMatching = requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_FuzzyMatching; requestSuggester_suggester_DocumentSuggesterOptionsIsNull = false; } System.String requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_SortExpression = null; if (cmdletContext.DocumentSuggesterOptions_SortExpression != null) { requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_SortExpression = cmdletContext.DocumentSuggesterOptions_SortExpression; } if (requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_SortExpression != null) { requestSuggester_suggester_DocumentSuggesterOptions.SortExpression = requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_SortExpression; requestSuggester_suggester_DocumentSuggesterOptionsIsNull = false; } System.String requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_SourceField = null; if (cmdletContext.DocumentSuggesterOptions_SourceField != null) { requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_SourceField = cmdletContext.DocumentSuggesterOptions_SourceField; } if (requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_SourceField != null) { requestSuggester_suggester_DocumentSuggesterOptions.SourceField = requestSuggester_suggester_DocumentSuggesterOptions_documentSuggesterOptions_SourceField; requestSuggester_suggester_DocumentSuggesterOptionsIsNull = false; } // determine if requestSuggester_suggester_DocumentSuggesterOptions should be set to null if (requestSuggester_suggester_DocumentSuggesterOptionsIsNull) { requestSuggester_suggester_DocumentSuggesterOptions = null; } if (requestSuggester_suggester_DocumentSuggesterOptions != null) { request.Suggester.DocumentSuggesterOptions = requestSuggester_suggester_DocumentSuggesterOptions; requestSuggesterIsNull = false; } // determine if request.Suggester should be set to null if (requestSuggesterIsNull) { request.Suggester = null; } 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); }