/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace CloudSearchDomain { namespace Model { class SearchRequest; class SuggestRequest; class UploadDocumentsRequest; typedef Aws::Utils::Outcome SearchOutcome; typedef Aws::Utils::Outcome SuggestOutcome; typedef Aws::Utils::Outcome UploadDocumentsOutcome; typedef std::future SearchOutcomeCallable; typedef std::future SuggestOutcomeCallable; typedef std::future UploadDocumentsOutcomeCallable; } // namespace Model class CloudSearchDomainClient; typedef std::function&) > SearchResponseReceivedHandler; typedef std::function&) > SuggestResponseReceivedHandler; typedef std::function&) > UploadDocumentsResponseReceivedHandler; /** *

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: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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 = Aws::Client::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 = Aws::Client::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 = Aws::Client::ClientConfiguration()); 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; /** *

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SearchOutcomeCallable SearchCallable(const Model::SearchRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SearchAsync(const Model::SearchRequest& request, const SearchResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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; /** *

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SuggestOutcomeCallable SuggestCallable(const Model::SuggestRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SuggestAsync(const Model::SuggestRequest& request, const SuggestResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

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; /** *

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

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UploadDocumentsOutcomeCallable UploadDocumentsCallable(const Model::UploadDocumentsRequest& request) const; /** *

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UploadDocumentsAsync(const Model::UploadDocumentsRequest& request, const UploadDocumentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void SearchAsyncHelper(const Model::SearchRequest& request, const SearchResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SuggestAsyncHelper(const Model::SuggestRequest& request, const SuggestResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UploadDocumentsAsyncHelper(const Model::UploadDocumentsRequest& request, const UploadDocumentsResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace CloudSearchDomain } // namespace Aws