/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace CloudSearchDomain { /** *

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.

*/ class AWS_CLOUDSEARCHDOMAIN_API CloudSearchDomainClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef CloudSearchDomainClientConfiguration ClientConfigurationType; typedef CloudSearchDomainEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CloudSearchDomainClient(const Aws::CloudSearchDomain::CloudSearchDomainClientConfiguration& clientConfiguration = Aws::CloudSearchDomain::CloudSearchDomainClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CloudSearchDomainClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::CloudSearchDomain::CloudSearchDomainClientConfiguration& clientConfiguration = Aws::CloudSearchDomain::CloudSearchDomainClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ CloudSearchDomainClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::CloudSearchDomain::CloudSearchDomainClientConfiguration& clientConfiguration = Aws::CloudSearchDomain::CloudSearchDomainClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CloudSearchDomainClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CloudSearchDomainClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ CloudSearchDomainClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~CloudSearchDomainClient(); /** *

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.

See * Also:

AWS * API Reference

*/ virtual Model::SearchOutcome Search(const Model::SearchRequest& request) const; /** * A Callable wrapper for Search that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SearchOutcomeCallable SearchCallable(const SearchRequestT& request) const { return SubmitCallable(&CloudSearchDomainClient::Search, request); } /** * An Async wrapper for Search that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SearchAsync(const SearchRequestT& request, const SearchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudSearchDomainClient::Search, request, handler, context); } /** *

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.

See * Also:

AWS * API Reference

*/ virtual Model::SuggestOutcome Suggest(const Model::SuggestRequest& request) const; /** * A Callable wrapper for Suggest that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SuggestOutcomeCallable SuggestCallable(const SuggestRequestT& request) const { return SubmitCallable(&CloudSearchDomainClient::Suggest, request); } /** * An Async wrapper for Suggest that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SuggestAsync(const SuggestRequestT& request, const SuggestResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudSearchDomainClient::Suggest, request, handler, context); } /** *

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.

See * Also:

AWS * API Reference

*/ virtual Model::UploadDocumentsOutcome UploadDocuments(const Model::UploadDocumentsRequest& request) const; /** * A Callable wrapper for UploadDocuments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UploadDocumentsOutcomeCallable UploadDocumentsCallable(const UploadDocumentsRequestT& request) const { return SubmitCallable(&CloudSearchDomainClient::UploadDocuments, request); } /** * An Async wrapper for UploadDocuments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UploadDocumentsAsync(const UploadDocumentsRequestT& request, const UploadDocumentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudSearchDomainClient::UploadDocuments, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const CloudSearchDomainClientConfiguration& clientConfiguration); CloudSearchDomainClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace CloudSearchDomain } // namespace Aws