{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.CloudSearchDomains.Search -- Copyright : (c) 2013-2021 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- 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 -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching.html 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. module Amazonka.CloudSearchDomains.Search ( -- * Creating a Request Search (..), newSearch, -- * Request Lenses search_expr, search_cursor, search_return, search_queryOptions, search_filterQuery, search_size, search_queryParser, search_start, search_highlight, search_stats, search_sort, search_facet, search_partial, search_query, -- * Destructuring the Response SearchResponse (..), newSearchResponse, -- * Response Lenses searchResponse_status, searchResponse_facets, searchResponse_stats, searchResponse_hits, searchResponse_httpStatus, ) where import Amazonka.CloudSearchDomains.Types import qualified Amazonka.Core as Core import qualified Amazonka.Lens as Lens import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Request as Request import qualified Amazonka.Response as Response -- | Container for the parameters to the @Search@ request. -- -- /See:/ 'newSearch' smart constructor. data Search = Search' { -- | Defines one or more numeric expressions that can be used to sort results -- or specify search or filter criteria. You can also specify expressions -- as return fields. -- -- You specify the expressions in JSON using the form -- @{\"EXPRESSIONNAME\":\"EXPRESSION\"}@. You can define and use multiple -- expressions in a search request. For example: -- -- @ {\"expression1\":\"_score*rating\", \"expression2\":\"(1\/rank)*year\"} @ -- -- For information about the variables, operators, and functions you can -- use in expressions, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html#writing-expressions Writing Expressions> -- in the /Amazon CloudSearch Developer Guide/. Search -> Maybe Text expr :: Prelude.Maybe Prelude.Text, -- | Retrieves a cursor value you can use to page through large result sets. -- Use the @size@ parameter to control the number of hits to include in -- each response. You can specify either the @cursor@ or @start@ parameter -- in a request; they are mutually exclusive. To get the first cursor, set -- the cursor value to @initial@. In subsequent requests, specify the -- cursor value returned in the hits section of the response. -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/paginating-results.html Paginating Results> -- in the /Amazon CloudSearch Developer Guide/. Search -> Maybe Text cursor :: Prelude.Maybe Prelude.Text, -- | Specifies the field and expression values to include in the response. -- Multiple fields or expressions are specified as a comma-separated list. -- By default, a search response includes all return enabled fields -- (@_all_fields@). To return only the document IDs for the matching -- documents, specify @_no_fields@. To retrieve the relevance score -- calculated for each document, specify @_score@. Search -> Maybe Text return' :: Prelude.Maybe Prelude.Text, -- | Configures options for the query parser specified in the @queryParser@ -- parameter. You specify the options in JSON using the following form -- @{\"OPTION1\":\"VALUE1\",\"OPTION2\":VALUE2\"...\"OPTIONN\":\"VALUEN\"}.@ -- -- The options you can configure vary according to which parser you use: -- -- - @defaultOperator@: The default operator used to combine individual -- terms in the search string. For example: @defaultOperator: \'or\'@. -- For the @dismax@ parser, you specify a percentage that represents -- the percentage of terms in the search string (rounded down) that -- must match, rather than a default operator. A value of @0%@ is the -- equivalent to OR, and a value of @100%@ is equivalent to AND. The -- percentage must be specified as a value in the range 0-100 followed -- by the percent (%) symbol. For example, @defaultOperator: 50%@. -- Valid values: @and@, @or@, a percentage in the range 0%-100% -- (@dismax@). Default: @and@ (@simple@, @structured@, @lucene@) or -- @100@ (@dismax@). Valid for: @simple@, @structured@, @lucene@, and -- @dismax@. -- - @fields@: An array of the fields to search when no fields are -- specified in a search. If no fields are specified in a search and -- this option is not specified, all text and text-array fields are -- searched. You can specify a weight for each field to control the -- relative importance of each field when Amazon CloudSearch calculates -- relevance scores. To specify a field weight, append a caret (@^@) -- symbol and the weight to the field name. For example, to boost the -- importance of the @title@ field over the @description@ field you -- could specify: @\"fields\":[\"title^5\",\"description\"]@. Valid -- values: The name of any configured field and an optional numeric -- value greater than zero. Default: All @text@ and @text-array@ -- fields. Valid for: @simple@, @structured@, @lucene@, and @dismax@. -- - @operators@: An array of the operators or special characters you -- want to disable for the simple query parser. If you disable the -- @and@, @or@, or @not@ operators, the corresponding operators (@+@, -- @|@, @-@) have no special meaning and are dropped from the search -- string. Similarly, disabling @prefix@ disables the wildcard operator -- (@*@) and disabling @phrase@ disables the ability to search for -- phrases by enclosing phrases in double quotes. Disabling precedence -- disables the ability to control order of precedence using -- parentheses. Disabling @near@ disables the ability to use the ~ -- operator to perform a sloppy phrase search. Disabling the @fuzzy@ -- operator disables the ability to use the ~ operator to perform a -- fuzzy search. @escape@ disables the ability to use a backslash -- (@\\@) to escape special characters within the search string. -- Disabling whitespace is an advanced option that prevents the parser -- from tokenizing on whitespace, which can be useful for Vietnamese. -- (It prevents Vietnamese words from being split incorrectly.) For -- example, you could disable all operators other than the phrase -- operator to support just simple term and phrase queries: -- @\"operators\":[\"and\",\"not\",\"or\", \"prefix\"]@. Valid values: -- @and@, @escape@, @fuzzy@, @near@, @not@, @or@, @phrase@, -- @precedence@, @prefix@, @whitespace@. Default: All operators and -- special characters are enabled. Valid for: @simple@. -- - @phraseFields@: An array of the @text@ or @text-array@ fields you -- want to use for phrase searches. When the terms in the search string -- appear in close proximity within a field, the field scores higher. -- You can specify a weight for each field to boost that score. The -- @phraseSlop@ option controls how much the matches can deviate from -- the search string and still be boosted. To specify a field weight, -- append a caret (@^@) symbol and the weight to the field name. For -- example, to boost phrase matches in the @title@ field over the -- @abstract@ field, you could specify: -- @\"phraseFields\":[\"title^3\", \"plot\"]@ Valid values: The name of -- any @text@ or @text-array@ field and an optional numeric value -- greater than zero. Default: No fields. If you don\'t specify any -- fields with @phraseFields@, proximity scoring is disabled even if -- @phraseSlop@ is specified. Valid for: @dismax@. -- - @phraseSlop@: An integer value that specifies how much matches can -- deviate from the search phrase and still be boosted according to the -- weights specified in the @phraseFields@ option; for example, -- @phraseSlop: 2@. You must also specify @phraseFields@ to enable -- proximity scoring. Valid values: positive integers. Default: 0. -- Valid for: @dismax@. -- - @explicitPhraseSlop@: An integer value that specifies how much a -- match can deviate from the search phrase when the phrase is enclosed -- in double quotes in the search string. (Phrases that exceed this -- proximity distance are not considered a match.) For example, to -- specify a slop of three for dismax phrase queries, you would specify -- @\"explicitPhraseSlop\":3@. Valid values: positive integers. -- Default: 0. Valid for: @dismax@. -- - @tieBreaker@: When a term in the search string is found in a -- document\'s field, a score is calculated for that field based on how -- common the word is in that field compared to other documents. If the -- term occurs in multiple fields within a document, by default only -- the highest scoring field contributes to the document\'s overall -- score. You can specify a @tieBreaker@ value to enable the matches in -- lower-scoring fields to contribute to the document\'s score. That -- way, if two documents have the same max field score for a particular -- term, the score for the document that has matches in more fields -- will be higher. The formula for calculating the score with a -- tieBreaker is -- @(max field score) + (tieBreaker) * (sum of the scores for the rest of the matching fields)@. -- Set @tieBreaker@ to 0 to disregard all but the highest scoring field -- (pure max): @\"tieBreaker\":0@. Set to 1 to sum the scores from all -- fields (pure sum): @\"tieBreaker\":1@. Valid values: 0.0 to 1.0. -- Default: 0.0. Valid for: @dismax@. Search -> Maybe Text queryOptions :: Prelude.Maybe Prelude.Text, -- | Specifies a structured query that filters the results of a search -- without affecting how the results are scored and sorted. You use -- @filterQuery@ in conjunction with the @query@ parameter to filter the -- documents that match the constraints specified in the @query@ parameter. -- Specifying a filter controls only which matching documents are included -- in the results, it has no effect on how they are scored and sorted. The -- @filterQuery@ parameter supports the full structured query syntax. -- -- For more information about using filters, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/filtering-results.html Filtering Matching Documents> -- in the /Amazon CloudSearch Developer Guide/. Search -> Maybe Text filterQuery :: Prelude.Maybe Prelude.Text, -- | Specifies the maximum number of search hits to include in the response. Search -> Maybe Integer size :: Prelude.Maybe Prelude.Integer, -- | Specifies which query parser to use to process the request. If -- @queryParser@ is not specified, Amazon CloudSearch uses the @simple@ -- query parser. -- -- Amazon CloudSearch supports four query parsers: -- -- - @simple@: perform simple searches of @text@ and @text-array@ fields. -- By default, the @simple@ query parser searches all @text@ and -- @text-array@ fields. You can specify which fields to search by with -- the @queryOptions@ parameter. If you prefix a search term with a -- plus sign (+) documents must contain the term to be considered a -- match. (This is the default, unless you configure the default -- operator with the @queryOptions@ parameter.) You can use the @-@ -- (NOT), @|@ (OR), and @*@ (wildcard) operators to exclude particular -- terms, find results that match any of the specified terms, or search -- for a prefix. To search for a phrase rather than individual terms, -- enclose the phrase in double quotes. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-text.html Searching for Text> -- in the /Amazon CloudSearch Developer Guide/. -- - @structured@: perform advanced searches by combining multiple -- expressions to define the search criteria. You can also search -- within particular fields, search for values and ranges of values, -- and use advanced options such as term boosting, @matchall@, and -- @near@. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-compound-queries.html Constructing Compound Queries> -- in the /Amazon CloudSearch Developer Guide/. -- - @lucene@: search using the Apache Lucene query parser syntax. For -- more information, see -- <http://lucene.apache.org/core/4_6_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description Apache Lucene Query Parser Syntax>. -- - @dismax@: search using the simplified subset of the Apache Lucene -- query parser syntax defined by the DisMax query parser. For more -- information, see -- <http://wiki.apache.org/solr/DisMaxQParserPlugin#Query_Syntax DisMax Query Parser Syntax>. Search -> Maybe QueryParser queryParser :: Prelude.Maybe QueryParser, -- | Specifies the offset of the first search hit you want to return. Note -- that the result set is zero-based; the first result is at index 0. You -- can specify either the @start@ or @cursor@ parameter in a request, they -- are mutually exclusive. -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/paginating-results.html Paginating Results> -- in the /Amazon CloudSearch Developer Guide/. Search -> Maybe Integer start :: Prelude.Maybe Prelude.Integer, -- | Retrieves highlights for matches in the specified @text@ or @text-array@ -- fields. Each specified field must be highlight enabled in the domain -- configuration. The fields and options are specified in JSON using the -- form -- @{\"FIELD\":{\"OPTION\":VALUE,\"OPTION:\"STRING\"},\"FIELD\":{\"OPTION\":VALUE,\"OPTION\":\"STRING\"}}@. -- -- You can specify the following highlight options: -- -- - @format@: specifies the format of the data in the text field: @text@ -- or @html@. When data is returned as HTML, all non-alphanumeric -- characters are encoded. The default is @html@. -- - @max_phrases@: specifies the maximum number of occurrences of the -- search term(s) you want to highlight. By default, the first -- occurrence is highlighted. -- - @pre_tag@: specifies the string to prepend to an occurrence of a -- search term. The default for HTML highlights is @<em>@. The -- default for text highlights is @*@. -- - @post_tag@: specifies the string to append to an occurrence of a -- search term. The default for HTML highlights is @<\/em>@. The -- default for text highlights is @*@. -- -- If no highlight options are specified for a field, the returned field -- text is treated as HTML and the first match is highlighted with emphasis -- tags: @<em>search-term<\/em>@. -- -- For example, the following request retrieves highlights for the @actors@ -- and @title@ fields. -- -- @{ \"actors\": {}, \"title\": {\"format\": \"text\",\"max_phrases\": 2,\"pre_tag\": \"\",\"post_tag\": \"\"} }@ Search -> Maybe Text highlight :: Prelude.Maybe Prelude.Text, -- | Specifies one or more fields for which to get statistics information. -- Each specified field must be facet-enabled in the domain configuration. -- The fields are specified in JSON using the form: -- -- @{\"FIELD-A\":{},\"FIELD-B\":{}}@ -- -- There are currently no options supported for statistics. Search -> Maybe Text stats :: Prelude.Maybe Prelude.Text, -- | Specifies the fields or custom expressions to use to sort the search -- results. Multiple fields or expressions are specified as a -- comma-separated list. You must specify the sort direction (@asc@ or -- @desc@) for each field; for example, @year desc,title asc@. To use a -- field to sort results, the field must be sort-enabled in the domain -- configuration. Array type fields cannot be used for sorting. If no -- @sort@ parameter is specified, results are sorted by their default -- relevance scores in descending order: @_score desc@. You can also sort -- by document ID (@_id asc@) and version (@_version desc@). -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/sorting-results.html Sorting Results> -- in the /Amazon CloudSearch Developer Guide/. Search -> Maybe Text sort :: Prelude.Maybe Prelude.Text, -- | Specifies one or more fields for which to get facet information, and -- options that control how the facet information is returned. Each -- specified field must be facet-enabled in the domain configuration. The -- fields and options are specified in JSON using the form -- @{\"FIELD\":{\"OPTION\":VALUE,\"OPTION:\"STRING\"},\"FIELD\":{\"OPTION\":VALUE,\"OPTION\":\"STRING\"}}@. -- -- You can specify the following faceting options: -- -- - @buckets@ specifies an array of the facet values or ranges to count. -- Ranges are specified using the same syntax that you use to search -- for a range of values. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-ranges.html Searching for a Range of Values> -- in the /Amazon CloudSearch Developer Guide/. Buckets are returned in -- the order they are specified in the request. The @sort@ and @size@ -- options are not valid if you specify @buckets@. -- -- - @size@ specifies the maximum number of facets to include in the -- results. By default, Amazon CloudSearch returns counts for the top -- 10. The @size@ parameter is only valid when you specify the @sort@ -- option; it cannot be used in conjunction with @buckets@. -- -- - @sort@ specifies how you want to sort the facets in the results: -- @bucket@ or @count@. Specify @bucket@ to sort alphabetically or -- numerically by facet value (in ascending order). Specify @count@ to -- sort by the facet counts computed for each facet value (in -- descending order). To retrieve facet counts for particular values or -- ranges of values, use the @buckets@ option instead of @sort@. -- -- If no facet options are specified, facet counts are computed for all -- field values, the facets are sorted by facet count, and the top 10 -- facets are returned in the results. -- -- To count particular buckets of values, use the @buckets@ option. For -- example, the following request uses the @buckets@ option to calculate -- and return facet counts by decade. -- -- @ {\"year\":{\"buckets\":[\"[1970,1979]\",\"[1980,1989]\",\"[1990,1999]\",\"[2000,2009]\",\"[2010,}\"]}} @ -- -- To sort facets by facet count, use the @count@ option. For example, the -- following request sets the @sort@ option to @count@ to sort the facet -- values by facet count, with the facet values that have the most matching -- documents listed first. Setting the @size@ option to 3 returns only the -- top three facet values. -- -- @ {\"year\":{\"sort\":\"count\",\"size\":3}} @ -- -- To sort the facets by value, use the @bucket@ option. For example, the -- following request sets the @sort@ option to @bucket@ to sort the facet -- values numerically by year, with earliest year listed first. -- -- @ {\"year\":{\"sort\":\"bucket\"}} @ -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/faceting.html Getting and Using Facet Information> -- in the /Amazon CloudSearch Developer Guide/. Search -> Maybe Text facet :: Prelude.Maybe Prelude.Text, -- | Enables partial results to be returned if one or more index partitions -- are unavailable. When your search index is partitioned across multiple -- search instances, by default Amazon CloudSearch only returns results if -- every partition can be queried. This means that the failure of a single -- search instance can result in 5xx (internal server) errors. When you -- enable partial results, Amazon CloudSearch returns whatever results are -- available and includes the percentage of documents searched in the -- search results (percent-searched). This enables you to more gracefully -- degrade your users\' search experience. For example, rather than -- displaying no results, you could display the partial results and a -- message indicating that the results might be incomplete due to a -- temporary system outage. Search -> Maybe Bool partial :: Prelude.Maybe Prelude.Bool, -- | Specifies the search criteria for the request. How you specify the -- search criteria depends on the query parser used for the request and the -- parser options specified in the @queryOptions@ parameter. By default, -- the @simple@ query parser is used to process requests. To use the -- @structured@, @lucene@, or @dismax@ query parser, you must also specify -- the @queryParser@ parameter. -- -- For more information about specifying search criteria, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching.html Searching Your Data> -- in the /Amazon CloudSearch Developer Guide/. Search -> Text query :: Prelude.Text } deriving (Search -> Search -> Bool (Search -> Search -> Bool) -> (Search -> Search -> Bool) -> Eq Search forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Search -> Search -> Bool $c/= :: Search -> Search -> Bool == :: Search -> Search -> Bool $c== :: Search -> Search -> Bool Prelude.Eq, ReadPrec [Search] ReadPrec Search Int -> ReadS Search ReadS [Search] (Int -> ReadS Search) -> ReadS [Search] -> ReadPrec Search -> ReadPrec [Search] -> Read Search forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [Search] $creadListPrec :: ReadPrec [Search] readPrec :: ReadPrec Search $creadPrec :: ReadPrec Search readList :: ReadS [Search] $creadList :: ReadS [Search] readsPrec :: Int -> ReadS Search $creadsPrec :: Int -> ReadS Search Prelude.Read, Int -> Search -> ShowS [Search] -> ShowS Search -> String (Int -> Search -> ShowS) -> (Search -> String) -> ([Search] -> ShowS) -> Show Search forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Search] -> ShowS $cshowList :: [Search] -> ShowS show :: Search -> String $cshow :: Search -> String showsPrec :: Int -> Search -> ShowS $cshowsPrec :: Int -> Search -> ShowS Prelude.Show, (forall x. Search -> Rep Search x) -> (forall x. Rep Search x -> Search) -> Generic Search forall x. Rep Search x -> Search forall x. Search -> Rep Search x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep Search x -> Search $cfrom :: forall x. Search -> Rep Search x Prelude.Generic) -- | -- Create a value of 'Search' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'expr', 'search_expr' - Defines one or more numeric expressions that can be used to sort results -- or specify search or filter criteria. You can also specify expressions -- as return fields. -- -- You specify the expressions in JSON using the form -- @{\"EXPRESSIONNAME\":\"EXPRESSION\"}@. You can define and use multiple -- expressions in a search request. For example: -- -- @ {\"expression1\":\"_score*rating\", \"expression2\":\"(1\/rank)*year\"} @ -- -- For information about the variables, operators, and functions you can -- use in expressions, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html#writing-expressions Writing Expressions> -- in the /Amazon CloudSearch Developer Guide/. -- -- 'cursor', 'search_cursor' - Retrieves a cursor value you can use to page through large result sets. -- Use the @size@ parameter to control the number of hits to include in -- each response. You can specify either the @cursor@ or @start@ parameter -- in a request; they are mutually exclusive. To get the first cursor, set -- the cursor value to @initial@. In subsequent requests, specify the -- cursor value returned in the hits section of the response. -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/paginating-results.html Paginating Results> -- in the /Amazon CloudSearch Developer Guide/. -- -- 'return'', 'search_return' - Specifies the field and expression values to include in the response. -- Multiple fields or expressions are specified as a comma-separated list. -- By default, a search response includes all return enabled fields -- (@_all_fields@). To return only the document IDs for the matching -- documents, specify @_no_fields@. To retrieve the relevance score -- calculated for each document, specify @_score@. -- -- 'queryOptions', 'search_queryOptions' - Configures options for the query parser specified in the @queryParser@ -- parameter. You specify the options in JSON using the following form -- @{\"OPTION1\":\"VALUE1\",\"OPTION2\":VALUE2\"...\"OPTIONN\":\"VALUEN\"}.@ -- -- The options you can configure vary according to which parser you use: -- -- - @defaultOperator@: The default operator used to combine individual -- terms in the search string. For example: @defaultOperator: \'or\'@. -- For the @dismax@ parser, you specify a percentage that represents -- the percentage of terms in the search string (rounded down) that -- must match, rather than a default operator. A value of @0%@ is the -- equivalent to OR, and a value of @100%@ is equivalent to AND. The -- percentage must be specified as a value in the range 0-100 followed -- by the percent (%) symbol. For example, @defaultOperator: 50%@. -- Valid values: @and@, @or@, a percentage in the range 0%-100% -- (@dismax@). Default: @and@ (@simple@, @structured@, @lucene@) or -- @100@ (@dismax@). Valid for: @simple@, @structured@, @lucene@, and -- @dismax@. -- - @fields@: An array of the fields to search when no fields are -- specified in a search. If no fields are specified in a search and -- this option is not specified, all text and text-array fields are -- searched. You can specify a weight for each field to control the -- relative importance of each field when Amazon CloudSearch calculates -- relevance scores. To specify a field weight, append a caret (@^@) -- symbol and the weight to the field name. For example, to boost the -- importance of the @title@ field over the @description@ field you -- could specify: @\"fields\":[\"title^5\",\"description\"]@. Valid -- values: The name of any configured field and an optional numeric -- value greater than zero. Default: All @text@ and @text-array@ -- fields. Valid for: @simple@, @structured@, @lucene@, and @dismax@. -- - @operators@: An array of the operators or special characters you -- want to disable for the simple query parser. If you disable the -- @and@, @or@, or @not@ operators, the corresponding operators (@+@, -- @|@, @-@) have no special meaning and are dropped from the search -- string. Similarly, disabling @prefix@ disables the wildcard operator -- (@*@) and disabling @phrase@ disables the ability to search for -- phrases by enclosing phrases in double quotes. Disabling precedence -- disables the ability to control order of precedence using -- parentheses. Disabling @near@ disables the ability to use the ~ -- operator to perform a sloppy phrase search. Disabling the @fuzzy@ -- operator disables the ability to use the ~ operator to perform a -- fuzzy search. @escape@ disables the ability to use a backslash -- (@\\@) to escape special characters within the search string. -- Disabling whitespace is an advanced option that prevents the parser -- from tokenizing on whitespace, which can be useful for Vietnamese. -- (It prevents Vietnamese words from being split incorrectly.) For -- example, you could disable all operators other than the phrase -- operator to support just simple term and phrase queries: -- @\"operators\":[\"and\",\"not\",\"or\", \"prefix\"]@. Valid values: -- @and@, @escape@, @fuzzy@, @near@, @not@, @or@, @phrase@, -- @precedence@, @prefix@, @whitespace@. Default: All operators and -- special characters are enabled. Valid for: @simple@. -- - @phraseFields@: An array of the @text@ or @text-array@ fields you -- want to use for phrase searches. When the terms in the search string -- appear in close proximity within a field, the field scores higher. -- You can specify a weight for each field to boost that score. The -- @phraseSlop@ option controls how much the matches can deviate from -- the search string and still be boosted. To specify a field weight, -- append a caret (@^@) symbol and the weight to the field name. For -- example, to boost phrase matches in the @title@ field over the -- @abstract@ field, you could specify: -- @\"phraseFields\":[\"title^3\", \"plot\"]@ Valid values: The name of -- any @text@ or @text-array@ field and an optional numeric value -- greater than zero. Default: No fields. If you don\'t specify any -- fields with @phraseFields@, proximity scoring is disabled even if -- @phraseSlop@ is specified. Valid for: @dismax@. -- - @phraseSlop@: An integer value that specifies how much matches can -- deviate from the search phrase and still be boosted according to the -- weights specified in the @phraseFields@ option; for example, -- @phraseSlop: 2@. You must also specify @phraseFields@ to enable -- proximity scoring. Valid values: positive integers. Default: 0. -- Valid for: @dismax@. -- - @explicitPhraseSlop@: An integer value that specifies how much a -- match can deviate from the search phrase when the phrase is enclosed -- in double quotes in the search string. (Phrases that exceed this -- proximity distance are not considered a match.) For example, to -- specify a slop of three for dismax phrase queries, you would specify -- @\"explicitPhraseSlop\":3@. Valid values: positive integers. -- Default: 0. Valid for: @dismax@. -- - @tieBreaker@: When a term in the search string is found in a -- document\'s field, a score is calculated for that field based on how -- common the word is in that field compared to other documents. If the -- term occurs in multiple fields within a document, by default only -- the highest scoring field contributes to the document\'s overall -- score. You can specify a @tieBreaker@ value to enable the matches in -- lower-scoring fields to contribute to the document\'s score. That -- way, if two documents have the same max field score for a particular -- term, the score for the document that has matches in more fields -- will be higher. The formula for calculating the score with a -- tieBreaker is -- @(max field score) + (tieBreaker) * (sum of the scores for the rest of the matching fields)@. -- Set @tieBreaker@ to 0 to disregard all but the highest scoring field -- (pure max): @\"tieBreaker\":0@. Set to 1 to sum the scores from all -- fields (pure sum): @\"tieBreaker\":1@. Valid values: 0.0 to 1.0. -- Default: 0.0. Valid for: @dismax@. -- -- 'filterQuery', 'search_filterQuery' - Specifies a structured query that filters the results of a search -- without affecting how the results are scored and sorted. You use -- @filterQuery@ in conjunction with the @query@ parameter to filter the -- documents that match the constraints specified in the @query@ parameter. -- Specifying a filter controls only which matching documents are included -- in the results, it has no effect on how they are scored and sorted. The -- @filterQuery@ parameter supports the full structured query syntax. -- -- For more information about using filters, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/filtering-results.html Filtering Matching Documents> -- in the /Amazon CloudSearch Developer Guide/. -- -- 'size', 'search_size' - Specifies the maximum number of search hits to include in the response. -- -- 'queryParser', 'search_queryParser' - Specifies which query parser to use to process the request. If -- @queryParser@ is not specified, Amazon CloudSearch uses the @simple@ -- query parser. -- -- Amazon CloudSearch supports four query parsers: -- -- - @simple@: perform simple searches of @text@ and @text-array@ fields. -- By default, the @simple@ query parser searches all @text@ and -- @text-array@ fields. You can specify which fields to search by with -- the @queryOptions@ parameter. If you prefix a search term with a -- plus sign (+) documents must contain the term to be considered a -- match. (This is the default, unless you configure the default -- operator with the @queryOptions@ parameter.) You can use the @-@ -- (NOT), @|@ (OR), and @*@ (wildcard) operators to exclude particular -- terms, find results that match any of the specified terms, or search -- for a prefix. To search for a phrase rather than individual terms, -- enclose the phrase in double quotes. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-text.html Searching for Text> -- in the /Amazon CloudSearch Developer Guide/. -- - @structured@: perform advanced searches by combining multiple -- expressions to define the search criteria. You can also search -- within particular fields, search for values and ranges of values, -- and use advanced options such as term boosting, @matchall@, and -- @near@. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-compound-queries.html Constructing Compound Queries> -- in the /Amazon CloudSearch Developer Guide/. -- - @lucene@: search using the Apache Lucene query parser syntax. For -- more information, see -- <http://lucene.apache.org/core/4_6_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description Apache Lucene Query Parser Syntax>. -- - @dismax@: search using the simplified subset of the Apache Lucene -- query parser syntax defined by the DisMax query parser. For more -- information, see -- <http://wiki.apache.org/solr/DisMaxQParserPlugin#Query_Syntax DisMax Query Parser Syntax>. -- -- 'start', 'search_start' - Specifies the offset of the first search hit you want to return. Note -- that the result set is zero-based; the first result is at index 0. You -- can specify either the @start@ or @cursor@ parameter in a request, they -- are mutually exclusive. -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/paginating-results.html Paginating Results> -- in the /Amazon CloudSearch Developer Guide/. -- -- 'highlight', 'search_highlight' - Retrieves highlights for matches in the specified @text@ or @text-array@ -- fields. Each specified field must be highlight enabled in the domain -- configuration. The fields and options are specified in JSON using the -- form -- @{\"FIELD\":{\"OPTION\":VALUE,\"OPTION:\"STRING\"},\"FIELD\":{\"OPTION\":VALUE,\"OPTION\":\"STRING\"}}@. -- -- You can specify the following highlight options: -- -- - @format@: specifies the format of the data in the text field: @text@ -- or @html@. When data is returned as HTML, all non-alphanumeric -- characters are encoded. The default is @html@. -- - @max_phrases@: specifies the maximum number of occurrences of the -- search term(s) you want to highlight. By default, the first -- occurrence is highlighted. -- - @pre_tag@: specifies the string to prepend to an occurrence of a -- search term. The default for HTML highlights is @<em>@. The -- default for text highlights is @*@. -- - @post_tag@: specifies the string to append to an occurrence of a -- search term. The default for HTML highlights is @<\/em>@. The -- default for text highlights is @*@. -- -- If no highlight options are specified for a field, the returned field -- text is treated as HTML and the first match is highlighted with emphasis -- tags: @<em>search-term<\/em>@. -- -- For example, the following request retrieves highlights for the @actors@ -- and @title@ fields. -- -- @{ \"actors\": {}, \"title\": {\"format\": \"text\",\"max_phrases\": 2,\"pre_tag\": \"\",\"post_tag\": \"\"} }@ -- -- 'stats', 'search_stats' - Specifies one or more fields for which to get statistics information. -- Each specified field must be facet-enabled in the domain configuration. -- The fields are specified in JSON using the form: -- -- @{\"FIELD-A\":{},\"FIELD-B\":{}}@ -- -- There are currently no options supported for statistics. -- -- 'sort', 'search_sort' - Specifies the fields or custom expressions to use to sort the search -- results. Multiple fields or expressions are specified as a -- comma-separated list. You must specify the sort direction (@asc@ or -- @desc@) for each field; for example, @year desc,title asc@. To use a -- field to sort results, the field must be sort-enabled in the domain -- configuration. Array type fields cannot be used for sorting. If no -- @sort@ parameter is specified, results are sorted by their default -- relevance scores in descending order: @_score desc@. You can also sort -- by document ID (@_id asc@) and version (@_version desc@). -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/sorting-results.html Sorting Results> -- in the /Amazon CloudSearch Developer Guide/. -- -- 'facet', 'search_facet' - Specifies one or more fields for which to get facet information, and -- options that control how the facet information is returned. Each -- specified field must be facet-enabled in the domain configuration. The -- fields and options are specified in JSON using the form -- @{\"FIELD\":{\"OPTION\":VALUE,\"OPTION:\"STRING\"},\"FIELD\":{\"OPTION\":VALUE,\"OPTION\":\"STRING\"}}@. -- -- You can specify the following faceting options: -- -- - @buckets@ specifies an array of the facet values or ranges to count. -- Ranges are specified using the same syntax that you use to search -- for a range of values. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-ranges.html Searching for a Range of Values> -- in the /Amazon CloudSearch Developer Guide/. Buckets are returned in -- the order they are specified in the request. The @sort@ and @size@ -- options are not valid if you specify @buckets@. -- -- - @size@ specifies the maximum number of facets to include in the -- results. By default, Amazon CloudSearch returns counts for the top -- 10. The @size@ parameter is only valid when you specify the @sort@ -- option; it cannot be used in conjunction with @buckets@. -- -- - @sort@ specifies how you want to sort the facets in the results: -- @bucket@ or @count@. Specify @bucket@ to sort alphabetically or -- numerically by facet value (in ascending order). Specify @count@ to -- sort by the facet counts computed for each facet value (in -- descending order). To retrieve facet counts for particular values or -- ranges of values, use the @buckets@ option instead of @sort@. -- -- If no facet options are specified, facet counts are computed for all -- field values, the facets are sorted by facet count, and the top 10 -- facets are returned in the results. -- -- To count particular buckets of values, use the @buckets@ option. For -- example, the following request uses the @buckets@ option to calculate -- and return facet counts by decade. -- -- @ {\"year\":{\"buckets\":[\"[1970,1979]\",\"[1980,1989]\",\"[1990,1999]\",\"[2000,2009]\",\"[2010,}\"]}} @ -- -- To sort facets by facet count, use the @count@ option. For example, the -- following request sets the @sort@ option to @count@ to sort the facet -- values by facet count, with the facet values that have the most matching -- documents listed first. Setting the @size@ option to 3 returns only the -- top three facet values. -- -- @ {\"year\":{\"sort\":\"count\",\"size\":3}} @ -- -- To sort the facets by value, use the @bucket@ option. For example, the -- following request sets the @sort@ option to @bucket@ to sort the facet -- values numerically by year, with earliest year listed first. -- -- @ {\"year\":{\"sort\":\"bucket\"}} @ -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/faceting.html Getting and Using Facet Information> -- in the /Amazon CloudSearch Developer Guide/. -- -- 'partial', 'search_partial' - Enables partial results to be returned if one or more index partitions -- are unavailable. When your search index is partitioned across multiple -- search instances, by default Amazon CloudSearch only returns results if -- every partition can be queried. This means that the failure of a single -- search instance can result in 5xx (internal server) errors. When you -- enable partial results, Amazon CloudSearch returns whatever results are -- available and includes the percentage of documents searched in the -- search results (percent-searched). This enables you to more gracefully -- degrade your users\' search experience. For example, rather than -- displaying no results, you could display the partial results and a -- message indicating that the results might be incomplete due to a -- temporary system outage. -- -- 'query', 'search_query' - Specifies the search criteria for the request. How you specify the -- search criteria depends on the query parser used for the request and the -- parser options specified in the @queryOptions@ parameter. By default, -- the @simple@ query parser is used to process requests. To use the -- @structured@, @lucene@, or @dismax@ query parser, you must also specify -- the @queryParser@ parameter. -- -- For more information about specifying search criteria, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching.html Searching Your Data> -- in the /Amazon CloudSearch Developer Guide/. newSearch :: -- | 'query' Prelude.Text -> Search newSearch :: Text -> Search newSearch Text pQuery_ = Search' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Integer -> Maybe QueryParser -> Maybe Integer -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> Text -> Search Search' { $sel:expr:Search' :: Maybe Text expr = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:cursor:Search' :: Maybe Text cursor = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:return':Search' :: Maybe Text return' = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:queryOptions:Search' :: Maybe Text queryOptions = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:filterQuery:Search' :: Maybe Text filterQuery = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:size:Search' :: Maybe Integer size = Maybe Integer forall a. Maybe a Prelude.Nothing, $sel:queryParser:Search' :: Maybe QueryParser queryParser = Maybe QueryParser forall a. Maybe a Prelude.Nothing, $sel:start:Search' :: Maybe Integer start = Maybe Integer forall a. Maybe a Prelude.Nothing, $sel:highlight:Search' :: Maybe Text highlight = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:stats:Search' :: Maybe Text stats = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:sort:Search' :: Maybe Text sort = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:facet:Search' :: Maybe Text facet = Maybe Text forall a. Maybe a Prelude.Nothing, $sel:partial:Search' :: Maybe Bool partial = Maybe Bool forall a. Maybe a Prelude.Nothing, $sel:query:Search' :: Text query = Text pQuery_ } -- | Defines one or more numeric expressions that can be used to sort results -- or specify search or filter criteria. You can also specify expressions -- as return fields. -- -- You specify the expressions in JSON using the form -- @{\"EXPRESSIONNAME\":\"EXPRESSION\"}@. You can define and use multiple -- expressions in a search request. For example: -- -- @ {\"expression1\":\"_score*rating\", \"expression2\":\"(1\/rank)*year\"} @ -- -- For information about the variables, operators, and functions you can -- use in expressions, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/configuring-expressions.html#writing-expressions Writing Expressions> -- in the /Amazon CloudSearch Developer Guide/. search_expr :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_expr :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_expr = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text expr :: Maybe Text $sel:expr:Search' :: Search -> Maybe Text expr} -> Maybe Text expr) (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:expr:Search' :: Maybe Text expr = Maybe Text a} :: Search) -- | Retrieves a cursor value you can use to page through large result sets. -- Use the @size@ parameter to control the number of hits to include in -- each response. You can specify either the @cursor@ or @start@ parameter -- in a request; they are mutually exclusive. To get the first cursor, set -- the cursor value to @initial@. In subsequent requests, specify the -- cursor value returned in the hits section of the response. -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/paginating-results.html Paginating Results> -- in the /Amazon CloudSearch Developer Guide/. search_cursor :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_cursor :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_cursor = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text cursor :: Maybe Text $sel:cursor:Search' :: Search -> Maybe Text cursor} -> Maybe Text cursor) (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:cursor:Search' :: Maybe Text cursor = Maybe Text a} :: Search) -- | Specifies the field and expression values to include in the response. -- Multiple fields or expressions are specified as a comma-separated list. -- By default, a search response includes all return enabled fields -- (@_all_fields@). To return only the document IDs for the matching -- documents, specify @_no_fields@. To retrieve the relevance score -- calculated for each document, specify @_score@. search_return :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_return :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_return = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text return' :: Maybe Text $sel:return':Search' :: Search -> Maybe Text return'} -> Maybe Text return') (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:return':Search' :: Maybe Text return' = Maybe Text a} :: Search) -- | Configures options for the query parser specified in the @queryParser@ -- parameter. You specify the options in JSON using the following form -- @{\"OPTION1\":\"VALUE1\",\"OPTION2\":VALUE2\"...\"OPTIONN\":\"VALUEN\"}.@ -- -- The options you can configure vary according to which parser you use: -- -- - @defaultOperator@: The default operator used to combine individual -- terms in the search string. For example: @defaultOperator: \'or\'@. -- For the @dismax@ parser, you specify a percentage that represents -- the percentage of terms in the search string (rounded down) that -- must match, rather than a default operator. A value of @0%@ is the -- equivalent to OR, and a value of @100%@ is equivalent to AND. The -- percentage must be specified as a value in the range 0-100 followed -- by the percent (%) symbol. For example, @defaultOperator: 50%@. -- Valid values: @and@, @or@, a percentage in the range 0%-100% -- (@dismax@). Default: @and@ (@simple@, @structured@, @lucene@) or -- @100@ (@dismax@). Valid for: @simple@, @structured@, @lucene@, and -- @dismax@. -- - @fields@: An array of the fields to search when no fields are -- specified in a search. If no fields are specified in a search and -- this option is not specified, all text and text-array fields are -- searched. You can specify a weight for each field to control the -- relative importance of each field when Amazon CloudSearch calculates -- relevance scores. To specify a field weight, append a caret (@^@) -- symbol and the weight to the field name. For example, to boost the -- importance of the @title@ field over the @description@ field you -- could specify: @\"fields\":[\"title^5\",\"description\"]@. Valid -- values: The name of any configured field and an optional numeric -- value greater than zero. Default: All @text@ and @text-array@ -- fields. Valid for: @simple@, @structured@, @lucene@, and @dismax@. -- - @operators@: An array of the operators or special characters you -- want to disable for the simple query parser. If you disable the -- @and@, @or@, or @not@ operators, the corresponding operators (@+@, -- @|@, @-@) have no special meaning and are dropped from the search -- string. Similarly, disabling @prefix@ disables the wildcard operator -- (@*@) and disabling @phrase@ disables the ability to search for -- phrases by enclosing phrases in double quotes. Disabling precedence -- disables the ability to control order of precedence using -- parentheses. Disabling @near@ disables the ability to use the ~ -- operator to perform a sloppy phrase search. Disabling the @fuzzy@ -- operator disables the ability to use the ~ operator to perform a -- fuzzy search. @escape@ disables the ability to use a backslash -- (@\\@) to escape special characters within the search string. -- Disabling whitespace is an advanced option that prevents the parser -- from tokenizing on whitespace, which can be useful for Vietnamese. -- (It prevents Vietnamese words from being split incorrectly.) For -- example, you could disable all operators other than the phrase -- operator to support just simple term and phrase queries: -- @\"operators\":[\"and\",\"not\",\"or\", \"prefix\"]@. Valid values: -- @and@, @escape@, @fuzzy@, @near@, @not@, @or@, @phrase@, -- @precedence@, @prefix@, @whitespace@. Default: All operators and -- special characters are enabled. Valid for: @simple@. -- - @phraseFields@: An array of the @text@ or @text-array@ fields you -- want to use for phrase searches. When the terms in the search string -- appear in close proximity within a field, the field scores higher. -- You can specify a weight for each field to boost that score. The -- @phraseSlop@ option controls how much the matches can deviate from -- the search string and still be boosted. To specify a field weight, -- append a caret (@^@) symbol and the weight to the field name. For -- example, to boost phrase matches in the @title@ field over the -- @abstract@ field, you could specify: -- @\"phraseFields\":[\"title^3\", \"plot\"]@ Valid values: The name of -- any @text@ or @text-array@ field and an optional numeric value -- greater than zero. Default: No fields. If you don\'t specify any -- fields with @phraseFields@, proximity scoring is disabled even if -- @phraseSlop@ is specified. Valid for: @dismax@. -- - @phraseSlop@: An integer value that specifies how much matches can -- deviate from the search phrase and still be boosted according to the -- weights specified in the @phraseFields@ option; for example, -- @phraseSlop: 2@. You must also specify @phraseFields@ to enable -- proximity scoring. Valid values: positive integers. Default: 0. -- Valid for: @dismax@. -- - @explicitPhraseSlop@: An integer value that specifies how much a -- match can deviate from the search phrase when the phrase is enclosed -- in double quotes in the search string. (Phrases that exceed this -- proximity distance are not considered a match.) For example, to -- specify a slop of three for dismax phrase queries, you would specify -- @\"explicitPhraseSlop\":3@. Valid values: positive integers. -- Default: 0. Valid for: @dismax@. -- - @tieBreaker@: When a term in the search string is found in a -- document\'s field, a score is calculated for that field based on how -- common the word is in that field compared to other documents. If the -- term occurs in multiple fields within a document, by default only -- the highest scoring field contributes to the document\'s overall -- score. You can specify a @tieBreaker@ value to enable the matches in -- lower-scoring fields to contribute to the document\'s score. That -- way, if two documents have the same max field score for a particular -- term, the score for the document that has matches in more fields -- will be higher. The formula for calculating the score with a -- tieBreaker is -- @(max field score) + (tieBreaker) * (sum of the scores for the rest of the matching fields)@. -- Set @tieBreaker@ to 0 to disregard all but the highest scoring field -- (pure max): @\"tieBreaker\":0@. Set to 1 to sum the scores from all -- fields (pure sum): @\"tieBreaker\":1@. Valid values: 0.0 to 1.0. -- Default: 0.0. Valid for: @dismax@. search_queryOptions :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_queryOptions :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_queryOptions = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text queryOptions :: Maybe Text $sel:queryOptions:Search' :: Search -> Maybe Text queryOptions} -> Maybe Text queryOptions) (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:queryOptions:Search' :: Maybe Text queryOptions = Maybe Text a} :: Search) -- | Specifies a structured query that filters the results of a search -- without affecting how the results are scored and sorted. You use -- @filterQuery@ in conjunction with the @query@ parameter to filter the -- documents that match the constraints specified in the @query@ parameter. -- Specifying a filter controls only which matching documents are included -- in the results, it has no effect on how they are scored and sorted. The -- @filterQuery@ parameter supports the full structured query syntax. -- -- For more information about using filters, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/filtering-results.html Filtering Matching Documents> -- in the /Amazon CloudSearch Developer Guide/. search_filterQuery :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_filterQuery :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_filterQuery = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text filterQuery :: Maybe Text $sel:filterQuery:Search' :: Search -> Maybe Text filterQuery} -> Maybe Text filterQuery) (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:filterQuery:Search' :: Maybe Text filterQuery = Maybe Text a} :: Search) -- | Specifies the maximum number of search hits to include in the response. search_size :: Lens.Lens' Search (Prelude.Maybe Prelude.Integer) search_size :: (Maybe Integer -> f (Maybe Integer)) -> Search -> f Search search_size = (Search -> Maybe Integer) -> (Search -> Maybe Integer -> Search) -> Lens Search Search (Maybe Integer) (Maybe Integer) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Integer size :: Maybe Integer $sel:size:Search' :: Search -> Maybe Integer size} -> Maybe Integer size) (\s :: Search s@Search' {} Maybe Integer a -> Search s {$sel:size:Search' :: Maybe Integer size = Maybe Integer a} :: Search) -- | Specifies which query parser to use to process the request. If -- @queryParser@ is not specified, Amazon CloudSearch uses the @simple@ -- query parser. -- -- Amazon CloudSearch supports four query parsers: -- -- - @simple@: perform simple searches of @text@ and @text-array@ fields. -- By default, the @simple@ query parser searches all @text@ and -- @text-array@ fields. You can specify which fields to search by with -- the @queryOptions@ parameter. If you prefix a search term with a -- plus sign (+) documents must contain the term to be considered a -- match. (This is the default, unless you configure the default -- operator with the @queryOptions@ parameter.) You can use the @-@ -- (NOT), @|@ (OR), and @*@ (wildcard) operators to exclude particular -- terms, find results that match any of the specified terms, or search -- for a prefix. To search for a phrase rather than individual terms, -- enclose the phrase in double quotes. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-text.html Searching for Text> -- in the /Amazon CloudSearch Developer Guide/. -- - @structured@: perform advanced searches by combining multiple -- expressions to define the search criteria. You can also search -- within particular fields, search for values and ranges of values, -- and use advanced options such as term boosting, @matchall@, and -- @near@. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-compound-queries.html Constructing Compound Queries> -- in the /Amazon CloudSearch Developer Guide/. -- - @lucene@: search using the Apache Lucene query parser syntax. For -- more information, see -- <http://lucene.apache.org/core/4_6_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description Apache Lucene Query Parser Syntax>. -- - @dismax@: search using the simplified subset of the Apache Lucene -- query parser syntax defined by the DisMax query parser. For more -- information, see -- <http://wiki.apache.org/solr/DisMaxQParserPlugin#Query_Syntax DisMax Query Parser Syntax>. search_queryParser :: Lens.Lens' Search (Prelude.Maybe QueryParser) search_queryParser :: (Maybe QueryParser -> f (Maybe QueryParser)) -> Search -> f Search search_queryParser = (Search -> Maybe QueryParser) -> (Search -> Maybe QueryParser -> Search) -> Lens Search Search (Maybe QueryParser) (Maybe QueryParser) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe QueryParser queryParser :: Maybe QueryParser $sel:queryParser:Search' :: Search -> Maybe QueryParser queryParser} -> Maybe QueryParser queryParser) (\s :: Search s@Search' {} Maybe QueryParser a -> Search s {$sel:queryParser:Search' :: Maybe QueryParser queryParser = Maybe QueryParser a} :: Search) -- | Specifies the offset of the first search hit you want to return. Note -- that the result set is zero-based; the first result is at index 0. You -- can specify either the @start@ or @cursor@ parameter in a request, they -- are mutually exclusive. -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/paginating-results.html Paginating Results> -- in the /Amazon CloudSearch Developer Guide/. search_start :: Lens.Lens' Search (Prelude.Maybe Prelude.Integer) search_start :: (Maybe Integer -> f (Maybe Integer)) -> Search -> f Search search_start = (Search -> Maybe Integer) -> (Search -> Maybe Integer -> Search) -> Lens Search Search (Maybe Integer) (Maybe Integer) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Integer start :: Maybe Integer $sel:start:Search' :: Search -> Maybe Integer start} -> Maybe Integer start) (\s :: Search s@Search' {} Maybe Integer a -> Search s {$sel:start:Search' :: Maybe Integer start = Maybe Integer a} :: Search) -- | Retrieves highlights for matches in the specified @text@ or @text-array@ -- fields. Each specified field must be highlight enabled in the domain -- configuration. The fields and options are specified in JSON using the -- form -- @{\"FIELD\":{\"OPTION\":VALUE,\"OPTION:\"STRING\"},\"FIELD\":{\"OPTION\":VALUE,\"OPTION\":\"STRING\"}}@. -- -- You can specify the following highlight options: -- -- - @format@: specifies the format of the data in the text field: @text@ -- or @html@. When data is returned as HTML, all non-alphanumeric -- characters are encoded. The default is @html@. -- - @max_phrases@: specifies the maximum number of occurrences of the -- search term(s) you want to highlight. By default, the first -- occurrence is highlighted. -- - @pre_tag@: specifies the string to prepend to an occurrence of a -- search term. The default for HTML highlights is @<em>@. The -- default for text highlights is @*@. -- - @post_tag@: specifies the string to append to an occurrence of a -- search term. The default for HTML highlights is @<\/em>@. The -- default for text highlights is @*@. -- -- If no highlight options are specified for a field, the returned field -- text is treated as HTML and the first match is highlighted with emphasis -- tags: @<em>search-term<\/em>@. -- -- For example, the following request retrieves highlights for the @actors@ -- and @title@ fields. -- -- @{ \"actors\": {}, \"title\": {\"format\": \"text\",\"max_phrases\": 2,\"pre_tag\": \"\",\"post_tag\": \"\"} }@ search_highlight :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_highlight :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_highlight = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text highlight :: Maybe Text $sel:highlight:Search' :: Search -> Maybe Text highlight} -> Maybe Text highlight) (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:highlight:Search' :: Maybe Text highlight = Maybe Text a} :: Search) -- | Specifies one or more fields for which to get statistics information. -- Each specified field must be facet-enabled in the domain configuration. -- The fields are specified in JSON using the form: -- -- @{\"FIELD-A\":{},\"FIELD-B\":{}}@ -- -- There are currently no options supported for statistics. search_stats :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_stats :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_stats = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text stats :: Maybe Text $sel:stats:Search' :: Search -> Maybe Text stats} -> Maybe Text stats) (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:stats:Search' :: Maybe Text stats = Maybe Text a} :: Search) -- | Specifies the fields or custom expressions to use to sort the search -- results. Multiple fields or expressions are specified as a -- comma-separated list. You must specify the sort direction (@asc@ or -- @desc@) for each field; for example, @year desc,title asc@. To use a -- field to sort results, the field must be sort-enabled in the domain -- configuration. Array type fields cannot be used for sorting. If no -- @sort@ parameter is specified, results are sorted by their default -- relevance scores in descending order: @_score desc@. You can also sort -- by document ID (@_id asc@) and version (@_version desc@). -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/sorting-results.html Sorting Results> -- in the /Amazon CloudSearch Developer Guide/. search_sort :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_sort :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_sort = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text sort :: Maybe Text $sel:sort:Search' :: Search -> Maybe Text sort} -> Maybe Text sort) (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:sort:Search' :: Maybe Text sort = Maybe Text a} :: Search) -- | Specifies one or more fields for which to get facet information, and -- options that control how the facet information is returned. Each -- specified field must be facet-enabled in the domain configuration. The -- fields and options are specified in JSON using the form -- @{\"FIELD\":{\"OPTION\":VALUE,\"OPTION:\"STRING\"},\"FIELD\":{\"OPTION\":VALUE,\"OPTION\":\"STRING\"}}@. -- -- You can specify the following faceting options: -- -- - @buckets@ specifies an array of the facet values or ranges to count. -- Ranges are specified using the same syntax that you use to search -- for a range of values. For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-ranges.html Searching for a Range of Values> -- in the /Amazon CloudSearch Developer Guide/. Buckets are returned in -- the order they are specified in the request. The @sort@ and @size@ -- options are not valid if you specify @buckets@. -- -- - @size@ specifies the maximum number of facets to include in the -- results. By default, Amazon CloudSearch returns counts for the top -- 10. The @size@ parameter is only valid when you specify the @sort@ -- option; it cannot be used in conjunction with @buckets@. -- -- - @sort@ specifies how you want to sort the facets in the results: -- @bucket@ or @count@. Specify @bucket@ to sort alphabetically or -- numerically by facet value (in ascending order). Specify @count@ to -- sort by the facet counts computed for each facet value (in -- descending order). To retrieve facet counts for particular values or -- ranges of values, use the @buckets@ option instead of @sort@. -- -- If no facet options are specified, facet counts are computed for all -- field values, the facets are sorted by facet count, and the top 10 -- facets are returned in the results. -- -- To count particular buckets of values, use the @buckets@ option. For -- example, the following request uses the @buckets@ option to calculate -- and return facet counts by decade. -- -- @ {\"year\":{\"buckets\":[\"[1970,1979]\",\"[1980,1989]\",\"[1990,1999]\",\"[2000,2009]\",\"[2010,}\"]}} @ -- -- To sort facets by facet count, use the @count@ option. For example, the -- following request sets the @sort@ option to @count@ to sort the facet -- values by facet count, with the facet values that have the most matching -- documents listed first. Setting the @size@ option to 3 returns only the -- top three facet values. -- -- @ {\"year\":{\"sort\":\"count\",\"size\":3}} @ -- -- To sort the facets by value, use the @bucket@ option. For example, the -- following request sets the @sort@ option to @bucket@ to sort the facet -- values numerically by year, with earliest year listed first. -- -- @ {\"year\":{\"sort\":\"bucket\"}} @ -- -- For more information, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/faceting.html Getting and Using Facet Information> -- in the /Amazon CloudSearch Developer Guide/. search_facet :: Lens.Lens' Search (Prelude.Maybe Prelude.Text) search_facet :: (Maybe Text -> f (Maybe Text)) -> Search -> f Search search_facet = (Search -> Maybe Text) -> (Search -> Maybe Text -> Search) -> Lens Search Search (Maybe Text) (Maybe Text) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Text facet :: Maybe Text $sel:facet:Search' :: Search -> Maybe Text facet} -> Maybe Text facet) (\s :: Search s@Search' {} Maybe Text a -> Search s {$sel:facet:Search' :: Maybe Text facet = Maybe Text a} :: Search) -- | Enables partial results to be returned if one or more index partitions -- are unavailable. When your search index is partitioned across multiple -- search instances, by default Amazon CloudSearch only returns results if -- every partition can be queried. This means that the failure of a single -- search instance can result in 5xx (internal server) errors. When you -- enable partial results, Amazon CloudSearch returns whatever results are -- available and includes the percentage of documents searched in the -- search results (percent-searched). This enables you to more gracefully -- degrade your users\' search experience. For example, rather than -- displaying no results, you could display the partial results and a -- message indicating that the results might be incomplete due to a -- temporary system outage. search_partial :: Lens.Lens' Search (Prelude.Maybe Prelude.Bool) search_partial :: (Maybe Bool -> f (Maybe Bool)) -> Search -> f Search search_partial = (Search -> Maybe Bool) -> (Search -> Maybe Bool -> Search) -> Lens Search Search (Maybe Bool) (Maybe Bool) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Maybe Bool partial :: Maybe Bool $sel:partial:Search' :: Search -> Maybe Bool partial} -> Maybe Bool partial) (\s :: Search s@Search' {} Maybe Bool a -> Search s {$sel:partial:Search' :: Maybe Bool partial = Maybe Bool a} :: Search) -- | Specifies the search criteria for the request. How you specify the -- search criteria depends on the query parser used for the request and the -- parser options specified in the @queryOptions@ parameter. By default, -- the @simple@ query parser is used to process requests. To use the -- @structured@, @lucene@, or @dismax@ query parser, you must also specify -- the @queryParser@ parameter. -- -- For more information about specifying search criteria, see -- <http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching.html Searching Your Data> -- in the /Amazon CloudSearch Developer Guide/. search_query :: Lens.Lens' Search Prelude.Text search_query :: (Text -> f Text) -> Search -> f Search search_query = (Search -> Text) -> (Search -> Text -> Search) -> Lens Search Search Text Text forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\Search' {Text query :: Text $sel:query:Search' :: Search -> Text query} -> Text query) (\s :: Search s@Search' {} Text a -> Search s {$sel:query:Search' :: Text query = Text a} :: Search) instance Core.AWSRequest Search where type AWSResponse Search = SearchResponse request :: Search -> Request Search request = Service -> Search -> Request Search forall a. ToRequest a => Service -> a -> Request a Request.get Service defaultService response :: Logger -> Service -> Proxy Search -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse Search))) response = (Int -> ResponseHeaders -> Object -> Either String (AWSResponse Search)) -> Logger -> Service -> Proxy Search -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse Search))) forall (m :: * -> *) a. MonadResource m => (Int -> ResponseHeaders -> Object -> Either String (AWSResponse a)) -> Logger -> Service -> Proxy a -> ClientResponse ClientBody -> m (Either Error (ClientResponse (AWSResponse a))) Response.receiveJSON ( \Int s ResponseHeaders h Object x -> Maybe SearchStatus -> Maybe (HashMap Text BucketInfo) -> Maybe (HashMap Text FieldStats) -> Maybe Hits -> Int -> SearchResponse SearchResponse' (Maybe SearchStatus -> Maybe (HashMap Text BucketInfo) -> Maybe (HashMap Text FieldStats) -> Maybe Hits -> Int -> SearchResponse) -> Either String (Maybe SearchStatus) -> Either String (Maybe (HashMap Text BucketInfo) -> Maybe (HashMap Text FieldStats) -> Maybe Hits -> Int -> SearchResponse) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (Object x Object -> Text -> Either String (Maybe SearchStatus) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "status") Either String (Maybe (HashMap Text BucketInfo) -> Maybe (HashMap Text FieldStats) -> Maybe Hits -> Int -> SearchResponse) -> Either String (Maybe (HashMap Text BucketInfo)) -> Either String (Maybe (HashMap Text FieldStats) -> Maybe Hits -> Int -> SearchResponse) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Either String (Maybe (Maybe (HashMap Text BucketInfo))) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "facets" Either String (Maybe (Maybe (HashMap Text BucketInfo))) -> Maybe (HashMap Text BucketInfo) -> Either String (Maybe (HashMap Text BucketInfo)) forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a Core..!@ Maybe (HashMap Text BucketInfo) forall a. Monoid a => a Prelude.mempty) Either String (Maybe (HashMap Text FieldStats) -> Maybe Hits -> Int -> SearchResponse) -> Either String (Maybe (HashMap Text FieldStats)) -> Either String (Maybe Hits -> Int -> SearchResponse) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Either String (Maybe (Maybe (HashMap Text FieldStats))) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "stats" Either String (Maybe (Maybe (HashMap Text FieldStats))) -> Maybe (HashMap Text FieldStats) -> Either String (Maybe (HashMap Text FieldStats)) forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a Core..!@ Maybe (HashMap Text FieldStats) forall a. Monoid a => a Prelude.mempty) Either String (Maybe Hits -> Int -> SearchResponse) -> Either String (Maybe Hits) -> Either String (Int -> SearchResponse) forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x Object -> Text -> Either String (Maybe Hits) forall a. FromJSON a => Object -> Text -> Either String (Maybe a) Core..?> Text "hits") Either String (Int -> SearchResponse) -> Either String Int -> Either String SearchResponse forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Int -> Either String Int forall (f :: * -> *) a. Applicative f => a -> f a Prelude.pure (Int -> Int forall a. Enum a => a -> Int Prelude.fromEnum Int s)) ) instance Prelude.Hashable Search instance Prelude.NFData Search instance Core.ToHeaders Search where toHeaders :: Search -> ResponseHeaders toHeaders = ResponseHeaders -> Search -> ResponseHeaders forall a b. a -> b -> a Prelude.const ( [ResponseHeaders] -> ResponseHeaders forall a. Monoid a => [a] -> a Prelude.mconcat [ HeaderName "Content-Type" HeaderName -> ByteString -> ResponseHeaders forall a. ToHeader a => HeaderName -> a -> ResponseHeaders Core.=# ( ByteString "application/x-amz-json-1.1" :: Prelude.ByteString ) ] ) instance Core.ToPath Search where toPath :: Search -> ByteString toPath = ByteString -> Search -> ByteString forall a b. a -> b -> a Prelude.const ByteString "/2013-01-01/search" instance Core.ToQuery Search where toQuery :: Search -> QueryString toQuery Search' {Maybe Bool Maybe Integer Maybe Text Maybe QueryParser Text query :: Text partial :: Maybe Bool facet :: Maybe Text sort :: Maybe Text stats :: Maybe Text highlight :: Maybe Text start :: Maybe Integer queryParser :: Maybe QueryParser size :: Maybe Integer filterQuery :: Maybe Text queryOptions :: Maybe Text return' :: Maybe Text cursor :: Maybe Text expr :: Maybe Text $sel:query:Search' :: Search -> Text $sel:partial:Search' :: Search -> Maybe Bool $sel:facet:Search' :: Search -> Maybe Text $sel:sort:Search' :: Search -> Maybe Text $sel:stats:Search' :: Search -> Maybe Text $sel:highlight:Search' :: Search -> Maybe Text $sel:start:Search' :: Search -> Maybe Integer $sel:queryParser:Search' :: Search -> Maybe QueryParser $sel:size:Search' :: Search -> Maybe Integer $sel:filterQuery:Search' :: Search -> Maybe Text $sel:queryOptions:Search' :: Search -> Maybe Text $sel:return':Search' :: Search -> Maybe Text $sel:cursor:Search' :: Search -> Maybe Text $sel:expr:Search' :: Search -> Maybe Text ..} = [QueryString] -> QueryString forall a. Monoid a => [a] -> a Prelude.mconcat [ ByteString "expr" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text expr, ByteString "cursor" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text cursor, ByteString "return" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text return', ByteString "q.options" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text queryOptions, ByteString "fq" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text filterQuery, ByteString "size" ByteString -> Maybe Integer -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Integer size, ByteString "q.parser" ByteString -> Maybe QueryParser -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe QueryParser queryParser, ByteString "start" ByteString -> Maybe Integer -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Integer start, ByteString "highlight" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text highlight, ByteString "stats" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text stats, ByteString "sort" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text sort, ByteString "facet" ByteString -> Maybe Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Text facet, ByteString "partial" ByteString -> Maybe Bool -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Maybe Bool partial, ByteString "q" ByteString -> Text -> QueryString forall a. ToQuery a => ByteString -> a -> QueryString Core.=: Text query, QueryString "format=sdk&pretty=true" ] -- | The result of a @Search@ request. Contains the documents that match the -- specified search criteria and any requested fields, highlights, and -- facet information. -- -- /See:/ 'newSearchResponse' smart constructor. data SearchResponse = SearchResponse' { -- | The status information returned for the search request. SearchResponse -> Maybe SearchStatus status :: Prelude.Maybe SearchStatus, -- | The requested facet information. SearchResponse -> Maybe (HashMap Text BucketInfo) facets :: Prelude.Maybe (Prelude.HashMap Prelude.Text BucketInfo), -- | The requested field statistics information. SearchResponse -> Maybe (HashMap Text FieldStats) stats :: Prelude.Maybe (Prelude.HashMap Prelude.Text FieldStats), -- | The documents that match the search criteria. SearchResponse -> Maybe Hits hits :: Prelude.Maybe Hits, -- | The response's http status code. SearchResponse -> Int httpStatus :: Prelude.Int } deriving (SearchResponse -> SearchResponse -> Bool (SearchResponse -> SearchResponse -> Bool) -> (SearchResponse -> SearchResponse -> Bool) -> Eq SearchResponse forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: SearchResponse -> SearchResponse -> Bool $c/= :: SearchResponse -> SearchResponse -> Bool == :: SearchResponse -> SearchResponse -> Bool $c== :: SearchResponse -> SearchResponse -> Bool Prelude.Eq, ReadPrec [SearchResponse] ReadPrec SearchResponse Int -> ReadS SearchResponse ReadS [SearchResponse] (Int -> ReadS SearchResponse) -> ReadS [SearchResponse] -> ReadPrec SearchResponse -> ReadPrec [SearchResponse] -> Read SearchResponse forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [SearchResponse] $creadListPrec :: ReadPrec [SearchResponse] readPrec :: ReadPrec SearchResponse $creadPrec :: ReadPrec SearchResponse readList :: ReadS [SearchResponse] $creadList :: ReadS [SearchResponse] readsPrec :: Int -> ReadS SearchResponse $creadsPrec :: Int -> ReadS SearchResponse Prelude.Read, Int -> SearchResponse -> ShowS [SearchResponse] -> ShowS SearchResponse -> String (Int -> SearchResponse -> ShowS) -> (SearchResponse -> String) -> ([SearchResponse] -> ShowS) -> Show SearchResponse forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [SearchResponse] -> ShowS $cshowList :: [SearchResponse] -> ShowS show :: SearchResponse -> String $cshow :: SearchResponse -> String showsPrec :: Int -> SearchResponse -> ShowS $cshowsPrec :: Int -> SearchResponse -> ShowS Prelude.Show, (forall x. SearchResponse -> Rep SearchResponse x) -> (forall x. Rep SearchResponse x -> SearchResponse) -> Generic SearchResponse forall x. Rep SearchResponse x -> SearchResponse forall x. SearchResponse -> Rep SearchResponse x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep SearchResponse x -> SearchResponse $cfrom :: forall x. SearchResponse -> Rep SearchResponse x Prelude.Generic) -- | -- Create a value of 'SearchResponse' with all optional fields omitted. -- -- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'status', 'searchResponse_status' - The status information returned for the search request. -- -- 'facets', 'searchResponse_facets' - The requested facet information. -- -- 'stats', 'searchResponse_stats' - The requested field statistics information. -- -- 'hits', 'searchResponse_hits' - The documents that match the search criteria. -- -- 'httpStatus', 'searchResponse_httpStatus' - The response's http status code. newSearchResponse :: -- | 'httpStatus' Prelude.Int -> SearchResponse newSearchResponse :: Int -> SearchResponse newSearchResponse Int pHttpStatus_ = SearchResponse' :: Maybe SearchStatus -> Maybe (HashMap Text BucketInfo) -> Maybe (HashMap Text FieldStats) -> Maybe Hits -> Int -> SearchResponse SearchResponse' { $sel:status:SearchResponse' :: Maybe SearchStatus status = Maybe SearchStatus forall a. Maybe a Prelude.Nothing, $sel:facets:SearchResponse' :: Maybe (HashMap Text BucketInfo) facets = Maybe (HashMap Text BucketInfo) forall a. Maybe a Prelude.Nothing, $sel:stats:SearchResponse' :: Maybe (HashMap Text FieldStats) stats = Maybe (HashMap Text FieldStats) forall a. Maybe a Prelude.Nothing, $sel:hits:SearchResponse' :: Maybe Hits hits = Maybe Hits forall a. Maybe a Prelude.Nothing, $sel:httpStatus:SearchResponse' :: Int httpStatus = Int pHttpStatus_ } -- | The status information returned for the search request. searchResponse_status :: Lens.Lens' SearchResponse (Prelude.Maybe SearchStatus) searchResponse_status :: (Maybe SearchStatus -> f (Maybe SearchStatus)) -> SearchResponse -> f SearchResponse searchResponse_status = (SearchResponse -> Maybe SearchStatus) -> (SearchResponse -> Maybe SearchStatus -> SearchResponse) -> Lens SearchResponse SearchResponse (Maybe SearchStatus) (Maybe SearchStatus) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\SearchResponse' {Maybe SearchStatus status :: Maybe SearchStatus $sel:status:SearchResponse' :: SearchResponse -> Maybe SearchStatus status} -> Maybe SearchStatus status) (\s :: SearchResponse s@SearchResponse' {} Maybe SearchStatus a -> SearchResponse s {$sel:status:SearchResponse' :: Maybe SearchStatus status = Maybe SearchStatus a} :: SearchResponse) -- | The requested facet information. searchResponse_facets :: Lens.Lens' SearchResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text BucketInfo)) searchResponse_facets :: (Maybe (HashMap Text BucketInfo) -> f (Maybe (HashMap Text BucketInfo))) -> SearchResponse -> f SearchResponse searchResponse_facets = (SearchResponse -> Maybe (HashMap Text BucketInfo)) -> (SearchResponse -> Maybe (HashMap Text BucketInfo) -> SearchResponse) -> Lens SearchResponse SearchResponse (Maybe (HashMap Text BucketInfo)) (Maybe (HashMap Text BucketInfo)) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\SearchResponse' {Maybe (HashMap Text BucketInfo) facets :: Maybe (HashMap Text BucketInfo) $sel:facets:SearchResponse' :: SearchResponse -> Maybe (HashMap Text BucketInfo) facets} -> Maybe (HashMap Text BucketInfo) facets) (\s :: SearchResponse s@SearchResponse' {} Maybe (HashMap Text BucketInfo) a -> SearchResponse s {$sel:facets:SearchResponse' :: Maybe (HashMap Text BucketInfo) facets = Maybe (HashMap Text BucketInfo) a} :: SearchResponse) ((Maybe (HashMap Text BucketInfo) -> f (Maybe (HashMap Text BucketInfo))) -> SearchResponse -> f SearchResponse) -> ((Maybe (HashMap Text BucketInfo) -> f (Maybe (HashMap Text BucketInfo))) -> Maybe (HashMap Text BucketInfo) -> f (Maybe (HashMap Text BucketInfo))) -> (Maybe (HashMap Text BucketInfo) -> f (Maybe (HashMap Text BucketInfo))) -> SearchResponse -> f SearchResponse forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso (HashMap Text BucketInfo) (HashMap Text BucketInfo) (HashMap Text BucketInfo) (HashMap Text BucketInfo) -> Iso (Maybe (HashMap Text BucketInfo)) (Maybe (HashMap Text BucketInfo)) (Maybe (HashMap Text BucketInfo)) (Maybe (HashMap Text BucketInfo)) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso (HashMap Text BucketInfo) (HashMap Text BucketInfo) (HashMap Text BucketInfo) (HashMap Text BucketInfo) forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The requested field statistics information. searchResponse_stats :: Lens.Lens' SearchResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text FieldStats)) searchResponse_stats :: (Maybe (HashMap Text FieldStats) -> f (Maybe (HashMap Text FieldStats))) -> SearchResponse -> f SearchResponse searchResponse_stats = (SearchResponse -> Maybe (HashMap Text FieldStats)) -> (SearchResponse -> Maybe (HashMap Text FieldStats) -> SearchResponse) -> Lens SearchResponse SearchResponse (Maybe (HashMap Text FieldStats)) (Maybe (HashMap Text FieldStats)) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\SearchResponse' {Maybe (HashMap Text FieldStats) stats :: Maybe (HashMap Text FieldStats) $sel:stats:SearchResponse' :: SearchResponse -> Maybe (HashMap Text FieldStats) stats} -> Maybe (HashMap Text FieldStats) stats) (\s :: SearchResponse s@SearchResponse' {} Maybe (HashMap Text FieldStats) a -> SearchResponse s {$sel:stats:SearchResponse' :: Maybe (HashMap Text FieldStats) stats = Maybe (HashMap Text FieldStats) a} :: SearchResponse) ((Maybe (HashMap Text FieldStats) -> f (Maybe (HashMap Text FieldStats))) -> SearchResponse -> f SearchResponse) -> ((Maybe (HashMap Text FieldStats) -> f (Maybe (HashMap Text FieldStats))) -> Maybe (HashMap Text FieldStats) -> f (Maybe (HashMap Text FieldStats))) -> (Maybe (HashMap Text FieldStats) -> f (Maybe (HashMap Text FieldStats))) -> SearchResponse -> f SearchResponse forall b c a. (b -> c) -> (a -> b) -> a -> c Prelude.. AnIso (HashMap Text FieldStats) (HashMap Text FieldStats) (HashMap Text FieldStats) (HashMap Text FieldStats) -> Iso (Maybe (HashMap Text FieldStats)) (Maybe (HashMap Text FieldStats)) (Maybe (HashMap Text FieldStats)) (Maybe (HashMap Text FieldStats)) forall (f :: * -> *) (g :: * -> *) s t a b. (Functor f, Functor g) => AnIso s t a b -> Iso (f s) (g t) (f a) (g b) Lens.mapping AnIso (HashMap Text FieldStats) (HashMap Text FieldStats) (HashMap Text FieldStats) (HashMap Text FieldStats) forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b Lens.coerced -- | The documents that match the search criteria. searchResponse_hits :: Lens.Lens' SearchResponse (Prelude.Maybe Hits) searchResponse_hits :: (Maybe Hits -> f (Maybe Hits)) -> SearchResponse -> f SearchResponse searchResponse_hits = (SearchResponse -> Maybe Hits) -> (SearchResponse -> Maybe Hits -> SearchResponse) -> Lens SearchResponse SearchResponse (Maybe Hits) (Maybe Hits) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\SearchResponse' {Maybe Hits hits :: Maybe Hits $sel:hits:SearchResponse' :: SearchResponse -> Maybe Hits hits} -> Maybe Hits hits) (\s :: SearchResponse s@SearchResponse' {} Maybe Hits a -> SearchResponse s {$sel:hits:SearchResponse' :: Maybe Hits hits = Maybe Hits a} :: SearchResponse) -- | The response's http status code. searchResponse_httpStatus :: Lens.Lens' SearchResponse Prelude.Int searchResponse_httpStatus :: (Int -> f Int) -> SearchResponse -> f SearchResponse searchResponse_httpStatus = (SearchResponse -> Int) -> (SearchResponse -> Int -> SearchResponse) -> Lens SearchResponse SearchResponse Int Int forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\SearchResponse' {Int httpStatus :: Int $sel:httpStatus:SearchResponse' :: SearchResponse -> Int httpStatus} -> Int httpStatus) (\s :: SearchResponse s@SearchResponse' {} Int a -> SearchResponse s {$sel:httpStatus:SearchResponse' :: Int httpStatus = Int a} :: SearchResponse) instance Prelude.NFData SearchResponse