Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License").
   * You may not use this file except in compliance with the License.
   * A copy of the License is located at
   * 
   *  http://aws.amazon.com/apache2.0
   * 
  * or in the "license" file accompanying this file. This file is distributed
  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
  * express or implied. See the License for the specific language governing
  * permissions and limitations under the License.
  */
 package com.amazonaws.services.cloudsearchdomain;
 
 import java.io.*;
 
 import java.net.*;
 import java.util.*;
 
 
 
Client for accessing AmazonCloudSearchDomain. All service calls made using this client are blocking, and will not return until the service call completes.

You use the AmazonCloudSearch2013 API to upload documents to a search domain and search those documents.

The endpoints for submitting UploadDocuments , Search , and Suggest requests are domain-specific. To get the endpoints for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. The domain endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console. You submit suggest requests to the search endpoint.

For more information, see the Amazon CloudSearch Developer Guide .

 
 public class AmazonCloudSearchDomainClient extends AmazonWebServiceClient implements AmazonCloudSearchDomain {

    
Provider for AWS credentials.
 
 
     private static final Log log = LogFactory.getLog(AmazonCloudSearchDomain.class);

    
List of exception unmarshallers for all AmazonCloudSearchDomain exceptions.
 
     protected List<JsonErrorUnmarshallerjsonErrorUnmarshallers;

    
Constructs a new client to invoke service methods on AmazonCloudSearchDomain. A credentials provider chain will be used that searches for credentials in this order:
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • Instance profile credentials delivered through the Amazon EC2 metadata service

All service calls made using this new client object are blocking, and will not return until the service call completes.

 
     public AmazonCloudSearchDomainClient() {
         this(new DefaultAWSCredentialsProviderChain(), new ClientConfiguration());
     }

    
Constructs a new client to invoke service methods on AmazonCloudSearchDomain. A credentials provider chain will be used that searches for credentials in this order:
  • Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
  • Java System Properties - aws.accessKeyId and aws.secretKey
  • Instance profile credentials delivered through the Amazon EC2 metadata service

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
clientConfiguration The client configuration options controlling how this client connects to AmazonCloudSearchDomain (ex: proxy settings, retry counts, etc.).
See also:
com.amazonaws.auth.DefaultAWSCredentialsProviderChain
    public AmazonCloudSearchDomainClient(ClientConfiguration clientConfiguration) {
        this(new DefaultAWSCredentialsProviderChain(), clientConfiguration);
    }

    
Constructs a new client to invoke service methods on AmazonCloudSearchDomain using the specified AWS account credentials.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
awsCredentials The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
    public AmazonCloudSearchDomainClient(AWSCredentials awsCredentials) {
        this(awsCredentialsnew ClientConfiguration());
    }

    
Constructs a new client to invoke service methods on AmazonCloudSearchDomain using the specified AWS account credentials and client configuration options.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
awsCredentials The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
clientConfiguration The client configuration options controlling how this client connects to AmazonCloudSearchDomain (ex: proxy settings, retry counts, etc.).
    public AmazonCloudSearchDomainClient(AWSCredentials awsCredentialsClientConfiguration clientConfiguration) {
        super(adjustClientConfiguration(clientConfiguration));
        
        this. = new StaticCredentialsProvider(awsCredentials);
        
        init();
    }

    
Constructs a new client to invoke service methods on AmazonCloudSearchDomain using the specified AWS account credentials provider.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
awsCredentialsProvider The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
    public AmazonCloudSearchDomainClient(AWSCredentialsProvider awsCredentialsProvider) {
        this(awsCredentialsProvidernew ClientConfiguration());
    }

    
Constructs a new client to invoke service methods on AmazonCloudSearchDomain using the specified AWS account credentials provider and client configuration options.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
awsCredentialsProvider The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
clientConfiguration The client configuration options controlling how this client connects to AmazonCloudSearchDomain (ex: proxy settings, retry counts, etc.).
    public AmazonCloudSearchDomainClient(AWSCredentialsProvider awsCredentialsProviderClientConfiguration clientConfiguration) {
        this(awsCredentialsProviderclientConfigurationnull);
    }

    
Constructs a new client to invoke service methods on AmazonCloudSearchDomain using the specified AWS account credentials provider, client configuration options and request metric collector.

All service calls made using this new client object are blocking, and will not return until the service call completes.

Parameters:
awsCredentialsProvider The AWS credentials provider which will provide credentials to authenticate requests with AWS services.
clientConfiguration The client configuration options controlling how this client connects to AmazonCloudSearchDomain (ex: proxy settings, retry counts, etc.).
requestMetricCollector optional request metric collector
    public AmazonCloudSearchDomainClient(AWSCredentialsProvider awsCredentialsProvider,
            ClientConfiguration clientConfiguration,
            RequestMetricCollector requestMetricCollector) {
        super(adjustClientConfiguration(clientConfiguration), requestMetricCollector);
        
        this. = awsCredentialsProvider;
        
        init();
    }
    private void init() {
        
        
        HandlerChainFactory chainFactory = new HandlerChainFactory();
        .addAll(chainFactory.newRequestHandlerChain(
                "/com/amazonaws/services/cloudsearchdomain/request.handlers"));
        .addAll(chainFactory.newRequestHandler2Chain(
                "/com/amazonaws/services/cloudsearchdomain/request.handler2s"));
    }
        ClientConfiguration config = orig;
        
        return config;
    }

    

Posts a batch of documents to a search domain for indexing. A document batch is a collection of add and delete operations that represent the documents you want to add, update, or delete from your domain. Batches can be described in either JSON or XML. Each item that you want Amazon CloudSearch to return as a search result (such as a product) is represented as a document. Every document has a unique ID and one or more fields that contain the data that you want to search and return in results. Individual documents cannot contain more than 1 MB of data. The entire batch cannot exceed 5 MB. To get the best possible upload performance, group add and delete operations in batches that are close the 5 MB limit. Submitting a large volume of single-document batches can overload a domain's document service.

The endpoint for submitting UploadDocuments requests is domain-specific. To get the document endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console.

For more information about formatting your data for Amazon CloudSearch, see Preparing Your Data in the Amazon CloudSearch Developer Guide . For more information about uploading data for indexing, see Uploading Data in the Amazon CloudSearch Developer Guide .

Parameters:
uploadDocumentsRequest Container for the necessary parameters to execute the UploadDocuments service method on AmazonCloudSearchDomain.
Returns:
The response from the UploadDocuments service method, as returned by AmazonCloudSearchDomain.
Throws:
com.amazonaws.services.cloudsearchdomain.model.DocumentServiceException
com.amazonaws.AmazonClientException If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
com.amazonaws.AmazonServiceException If an error response is returned by AmazonCloudSearchDomain indicating either a problem with the data in the request, or a server side issue.
    public UploadDocumentsResult uploadDocuments(UploadDocumentsRequest uploadDocumentsRequest) {
        ExecutionContext executionContext = createExecutionContext(uploadDocumentsRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(.);
        Request<UploadDocumentsRequestrequest = null;
        Response<UploadDocumentsResultresponse = null;
        
        final InputStream isOrig = uploadDocumentsRequest.getDocuments();
        
        try {
            awsRequestMetrics.startEvent(.);
            try {
                request = new UploadDocumentsRequestMarshaller().marshall(super.beforeMarshalling(uploadDocumentsRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
            } finally {
                awsRequestMetrics.endEvent(.);
            }
            Unmarshaller<UploadDocumentsResultJsonUnmarshallerContextunmarshaller =
                new UploadDocumentsResultJsonUnmarshaller();
            JsonResponseHandler<UploadDocumentsResultresponseHandler =
                new JsonResponseHandler<UploadDocumentsResult>(unmarshaller);
            response = invoke(requestresponseHandlerexecutionContext);
            return response.getAwsResponse();
        } finally {
            
            // Restore the original input stream, so that the caller
            // (who is responsible) can close it
            uploadDocumentsRequest.setDocuments(isOrig);
            
            endClientExecution(awsRequestMetricsrequestresponse);
        }
    }

    

Retrieves autocomplete suggestions for a partial query string. You can use suggestions enable you to display likely matches before users finish typing. In Amazon CloudSearch, suggestions are based on the contents of a particular text field. When you request suggestions, Amazon CloudSearch finds all of the documents whose values in the suggester field start with the specified query string. The beginning of the field must match the query string to be considered a match.

For more information about configuring suggesters and retrieving suggestions, see Getting Suggestions in the Amazon CloudSearch Developer Guide .

The endpoint for submitting Suggest requests is domain-specific. You submit suggest requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console.

Parameters:
suggestRequest Container for the necessary parameters to execute the Suggest service method on AmazonCloudSearchDomain.
Returns:
The response from the Suggest service method, as returned by AmazonCloudSearchDomain.
Throws:
com.amazonaws.services.cloudsearchdomain.model.SearchException
com.amazonaws.AmazonClientException If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
com.amazonaws.AmazonServiceException If an error response is returned by AmazonCloudSearchDomain indicating either a problem with the data in the request, or a server side issue.
    public SuggestResult suggest(SuggestRequest suggestRequest) {
        ExecutionContext executionContext = createExecutionContext(suggestRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(.);
        Request<SuggestRequestrequest = null;
        Response<SuggestResultresponse = null;
        
        try {
            awsRequestMetrics.startEvent(.);
            try {
                request = new SuggestRequestMarshaller().marshall(super.beforeMarshalling(suggestRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
            } finally {
                awsRequestMetrics.endEvent(.);
            }
            Unmarshaller<SuggestResultJsonUnmarshallerContextunmarshaller =
                new SuggestResultJsonUnmarshaller();
            JsonResponseHandler<SuggestResultresponseHandler =
                new JsonResponseHandler<SuggestResult>(unmarshaller);
            response = invoke(requestresponseHandlerexecutionContext);
            return response.getAwsResponse();
        } finally {
            
            endClientExecution(awsRequestMetricsrequestresponse);
        }
    }

    

Retrieves a list of documents that match the specified search criteria. How you specify the search criteria depends on which query parser you use. Amazon CloudSearch supports four query parsers:

  • simple : search all text and text-array fields for the specified string. Search for phrases, individual terms, and prefixes.
  • structured : search specific fields, construct compound queries using Boolean operators, and use advanced features such as term boosting and proximity searching.
  • lucene : specify search criteria using the Apache Lucene query parser syntax.
  • dismax : specify search criteria using the simplified subset of the Apache Lucene query parser syntax defined by the DisMax query parser.

For more information, see Searching Your Data in the Amazon CloudSearch Developer Guide .

The endpoint for submitting Search requests is domain-specific. You submit search requests to a domain's search endpoint. To get the search endpoint for your domain, use the Amazon CloudSearch configuration service DescribeDomains action. A domain's endpoints are also displayed on the domain dashboard in the Amazon CloudSearch console.

Parameters:
searchRequest Container for the necessary parameters to execute the Search service method on AmazonCloudSearchDomain.
Returns:
The response from the Search service method, as returned by AmazonCloudSearchDomain.
Throws:
com.amazonaws.services.cloudsearchdomain.model.SearchException
com.amazonaws.AmazonClientException If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
com.amazonaws.AmazonServiceException If an error response is returned by AmazonCloudSearchDomain indicating either a problem with the data in the request, or a server side issue.
    public SearchResult search(SearchRequest searchRequest) {
        ExecutionContext executionContext = createExecutionContext(searchRequest);
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        awsRequestMetrics.startEvent(.);
        Request<SearchRequestrequest = null;
        Response<SearchResultresponse = null;
        
        try {
            awsRequestMetrics.startEvent(.);
            try {
                request = new SearchRequestMarshaller().marshall(super.beforeMarshalling(searchRequest));
                // Binds the request metrics to the current request.
                request.setAWSRequestMetrics(awsRequestMetrics);
            } finally {
                awsRequestMetrics.endEvent(.);
            }
            Unmarshaller<SearchResultJsonUnmarshallerContextunmarshaller =
                new SearchResultJsonUnmarshaller();
            JsonResponseHandler<SearchResultresponseHandler =
                new JsonResponseHandler<SearchResult>(unmarshaller);
            response = invoke(requestresponseHandlerexecutionContext);
            return response.getAwsResponse();
        } finally {
            
            endClientExecution(awsRequestMetricsrequestresponse);
        }
    }
    @Override
    public void setEndpoint(String endpoint) {
        super.setEndpoint(endpoint);
    }
    @Override
    public void setEndpoint(String endpointString serviceNameString regionIdthrows IllegalArgumentException {
        super.setEndpoint(endpointserviceNameregionId);
    }

    
Returns additional metadata for a previously executed successful, request, typically used for debugging issues where a service isn't acting as expected. This data isn't considered part of the result data returned by an operation, so it's available through this separate, diagnostic interface.

Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic information for an executed request, you should use this method to retrieve it as soon as possible after executing the request.

Parameters:
request The originally executed request
Returns:
The response metadata for the specified request, or null if none is available.
        return .getResponseMetadataForRequest(request);
    }
    private <X, Y extends AmazonWebServiceRequestResponse<X> invoke(Request<Y> request,
            HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
            ExecutionContext executionContext) {
        request.setEndpoint();
        request.setTimeOffset();
        AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
        AWSCredentials credentials;
        awsRequestMetrics.startEvent(.);
        try {
            credentials = .getCredentials();
        } finally {
            awsRequestMetrics.endEvent(.);
        }
        AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
        if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
            credentials = originalRequest.getRequestCredentials();
        }
        executionContext.setCredentials(credentials);
        JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler();
        Response<X> result = .execute(requestresponseHandler,
                errorResponseHandlerexecutionContext);
        return result;
    }
}
        
New to GrepCode? Check out our FAQ X