public bool IndexExists(string indexName) { var amazonSearchParameters = this.GetAmazonParams(); var region = RegionEndpoint.GetBySystemName(amazonSearchParameters[Region]); using (IAmazonCloudSearch cloudSearchClient = AWSClientFactory.CreateAmazonCloudSearchClient(amazonSearchParameters[AccessKey], amazonSearchParameters[SecretAccessKey], region)) { bool exists = false; try { ListDomainNamesResponse response = cloudSearchClient.ListDomainNames(); exists = response.DomainNames.ContainsKey(indexName); } catch (BaseException ex) { Log.Write(ex.InnerException.Message); } catch (ArgumentNullException ex) { Log.Write(ex.InnerException.Message); } return(exists); } }
public void DeleteIndex(string name) { var amazonSearchParameters = this.GetAmazonParams(); var region = RegionEndpoint.GetBySystemName(amazonSearchParameters[Region]); using (IAmazonCloudSearch cloudSearchClient = AWSClientFactory.CreateAmazonCloudSearchClient(amazonSearchParameters[AccessKey], amazonSearchParameters[SecretAccessKey], region)) { DeleteDomainRequest domainRequest = new DeleteDomainRequest(); domainRequest.DomainName = name; try { cloudSearchClient.DeleteDomain(domainRequest); } catch (BaseException ex) { Log.Write(ex.InnerException.Message); } catch (InternalException ex) { Log.Write(ex.InnerException.Message); } } }
private Amazon.CloudSearch.Model.DescribeDomainEndpointOptionsResponse CallAWSServiceOperation(IAmazonCloudSearch client, Amazon.CloudSearch.Model.DescribeDomainEndpointOptionsRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon CloudSearch", "DescribeDomainEndpointOptions"); try { #if DESKTOP return(client.DescribeDomainEndpointOptions(request)); #elif CORECLR return(client.DescribeDomainEndpointOptionsAsync(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; } }
public void CreateIndex(string name, IEnumerable <IFieldDefinition> fieldDefinitions) { var amazonSearchParameters = this.GetAmazonParams(); var region = RegionEndpoint.GetBySystemName(amazonSearchParameters[Region]); //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(amazonSearchParameters[AccessKey], amazonSearchParameters[SecretAccessKey], region)) { try { var domainNames = cloudSearchClient.ListDomainNames(); if (!domainNames.DomainNames.ContainsKey(name)) { 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.ToLowerInvariant(); 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.ToLowerInvariant(); suggester.DocumentSuggesterOptions = suggesterOptions; suggester.SuggesterName = this.GetSuggesterName(field); 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); } } }
protected override void ProcessRecord() { base.ProcessRecord(); Client = CreateClient(_CurrentCredentials, _RegionEndpoint); }