com.amazonaws.services.cloudsearchdomain.model.SearchRequest Maven / Gradle / Ivy
/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.cloudsearchdomain.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
/**
* Container for the parameters to the {@link com.amazonaws.services.cloudsearchdomain.AmazonCloudSearchDomain#search(SearchRequest) Search operation}.
*
* 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 com.amazonaws.services.cloudsearchdomain.AmazonCloudSearchDomain#search(SearchRequest)
*/
public class SearchRequest extends AmazonWebServiceRequest implements Serializable, Cloneable {
/**
* 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*/
private String cursor;
/**
* 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 Writing
* Expressions in the Amazon CloudSearch Developer Guide.
*/
private String expr;
/**
* 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
* 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 Getting
* and Using Facet Information in the Amazon CloudSearch Developer
* Guide.
*/
private String facet;
/**
* 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 Filtering
* Matching Documents in the Amazon CloudSearch Developer
* Guide.
*/
private String filterQuery;
/**
* 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
*
. 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
*
. 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: search-term
.
*
For example, the following request retrieves highlights for the
* actors
and title
fields.
{
* "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag":
* "","post_tag": ""} }
*/
private String highlight;
/**
* 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.
*/
private Boolean partial;
/**
* 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 Searching
* Your Data in the Amazon CloudSearch Developer Guide.
*/
private String query;
/**
* 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
.
*/
private String queryOptions;
/**
* 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* Constraints:
* Allowed Values: simple, structured, lucene, dismax
*/
private String queryParser;
/**
* 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
.
*/
private String returnValue;
/**
* Specifies the maximum number of search hits to include in the
* response.
*/
private Long size;
/**
* 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 Sorting
* Results in the Amazon CloudSearch Developer Guide.
*/
private String sort;
/**
* 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*/
private Long start;
/**
* 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*
* @return 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*/
public String getCursor() {
return 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*
* @param 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*/
public void setCursor(String cursor) {
this.cursor = 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withCursor(String cursor) {
this.cursor = cursor;
return this;
}
/**
* 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 Writing
* Expressions in the Amazon CloudSearch Developer Guide.
*
* @return 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 Writing
* Expressions in the Amazon CloudSearch Developer Guide.
*/
public String getExpr() {
return 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 Writing
* Expressions in the Amazon CloudSearch Developer Guide.
*
* @param 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 Writing
* Expressions in the Amazon CloudSearch Developer Guide.
*/
public void setExpr(String expr) {
this.expr = 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 Writing
* Expressions in the Amazon CloudSearch Developer Guide.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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 Writing
* Expressions in the Amazon CloudSearch Developer Guide.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withExpr(String expr) {
this.expr = expr;
return this;
}
/**
* 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
* 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 Getting
* and Using Facet Information in the Amazon CloudSearch Developer
* Guide.
*
* @return 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
* 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 Getting
* and Using Facet Information in the Amazon CloudSearch Developer
* Guide.
*/
public String getFacet() {
return 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
* 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 Getting
* and Using Facet Information in the Amazon CloudSearch Developer
* Guide.
*
* @param 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
* 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 Getting
* and Using Facet Information in the Amazon CloudSearch Developer
* Guide.
*/
public void setFacet(String facet) {
this.facet = 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
* 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 Getting
* and Using Facet Information in the Amazon CloudSearch Developer
* Guide.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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
* 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 Getting
* and Using Facet Information in the Amazon CloudSearch Developer
* Guide.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withFacet(String facet) {
this.facet = facet;
return this;
}
/**
* 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 Filtering
* Matching Documents in the Amazon CloudSearch Developer
* Guide.
*
* @return 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 Filtering
* Matching Documents in the Amazon CloudSearch Developer
* Guide.
*/
public String getFilterQuery() {
return 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 Filtering
* Matching Documents in the Amazon CloudSearch Developer
* Guide.
*
* @param 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 Filtering
* Matching Documents in the Amazon CloudSearch Developer
* Guide.
*/
public void setFilterQuery(String filterQuery) {
this.filterQuery = 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 Filtering
* Matching Documents in the Amazon CloudSearch Developer
* Guide.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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 Filtering
* Matching Documents in the Amazon CloudSearch Developer
* Guide.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withFilterQuery(String filterQuery) {
this.filterQuery = filterQuery;
return this;
}
/**
* 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
*
. 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
*
. 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: search-term
.
*
For example, the following request retrieves highlights for the
* actors
and title
fields.
{
* "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag":
* "","post_tag": ""} }
*
* @return 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
*
. 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
*
. 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: search-term
.
*
For example, the following request retrieves highlights for the
* actors
and title
fields.
{
* "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag":
* "","post_tag": ""} }
*/
public String getHighlight() {
return 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
*
. 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
*
. 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: search-term
.
*
For example, the following request retrieves highlights for the
* actors
and title
fields.
{
* "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag":
* "","post_tag": ""} }
*
* @param 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
*
. 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
*
. 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: search-term
.
*
For example, the following request retrieves highlights for the
* actors
and title
fields.
{
* "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag":
* "","post_tag": ""} }
*/
public void setHighlight(String highlight) {
this.highlight = 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
*
. 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
*
. 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: search-term
.
*
For example, the following request retrieves highlights for the
* actors
and title
fields.
{
* "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag":
* "","post_tag": ""} }
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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
*
. 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
*
. 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: search-term
.
*
For example, the following request retrieves highlights for the
* actors
and title
fields.
{
* "actors": {}, "title": {"format": "text","max_phrases": 2,"pre_tag":
* "","post_tag": ""} }
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withHighlight(String highlight) {
this.highlight = highlight;
return this;
}
/**
* 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.
*
* @return 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.
*/
public Boolean isPartial() {
return 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.
*
* @param 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.
*/
public void setPartial(Boolean partial) {
this.partial = 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.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withPartial(Boolean partial) {
this.partial = partial;
return this;
}
/**
* 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.
*
* @return 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.
*/
public Boolean getPartial() {
return partial;
}
/**
* 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 Searching
* Your Data in the Amazon CloudSearch Developer Guide.
*
* @return 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 Searching
* Your Data in the Amazon CloudSearch Developer Guide.
*/
public String getQuery() {
return 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 Searching
* Your Data in the Amazon CloudSearch Developer Guide.
*
* @param 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 Searching
* Your Data in the Amazon CloudSearch Developer Guide.
*/
public void setQuery(String query) {
this.query = 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 Searching
* Your Data in the Amazon CloudSearch Developer Guide.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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 Searching
* Your Data in the Amazon CloudSearch Developer Guide.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withQuery(String query) {
this.query = query;
return this;
}
/**
* 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
.
*
* @return 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
.
*/
public String getQueryOptions() {
return 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
.
*
* @param 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
.
*/
public void setQueryOptions(String queryOptions) {
this.queryOptions = 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
.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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
.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withQueryOptions(String queryOptions) {
this.queryOptions = queryOptions;
return this;
}
/**
* 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* Constraints:
* Allowed Values: simple, structured, lucene, dismax
*
* @return 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* @see QueryParser
*/
public String getQueryParser() {
return 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* Constraints:
* Allowed Values: simple, structured, lucene, dismax
*
* @param 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* @see QueryParser
*/
public void setQueryParser(String queryParser) {
this.queryParser = 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Allowed Values: simple, structured, lucene, dismax
*
* @param 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*
* @see QueryParser
*/
public SearchRequest withQueryParser(String queryParser) {
this.queryParser = queryParser;
return this;
}
/**
* 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* Constraints:
* Allowed Values: simple, structured, lucene, dismax
*
* @param 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* @see QueryParser
*/
public void setQueryParser(QueryParser queryParser) {
this.queryParser = queryParser.toString();
}
/**
* 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* Returns a reference to this object so that method calls can be chained together.
*
* Constraints:
* Allowed Values: simple, structured, lucene, dismax
*
* @param 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 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 Constructing
* Compound Queries in the Amazon CloudSearch Developer Guide.
* -
lucene
: search using the Apache Lucene query
* parser syntax. For more information, see 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 DisMax
* Query Parser Syntax.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*
* @see QueryParser
*/
public SearchRequest withQueryParser(QueryParser queryParser) {
this.queryParser = queryParser.toString();
return this;
}
/**
* 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
.
*
* @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
.
*/
public String getReturn() {
return returnValue;
}
/**
* 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
.
*
* @param returnValue 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
.
*/
public void setReturn(String returnValue) {
this.returnValue = returnValue;
}
/**
* 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
.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param returnValue 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
.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withReturn(String returnValue) {
this.returnValue = returnValue;
return this;
}
/**
* Specifies the maximum number of search hits to include in the
* response.
*
* @return Specifies the maximum number of search hits to include in the
* response.
*/
public Long getSize() {
return size;
}
/**
* Specifies the maximum number of search hits to include in the
* response.
*
* @param size Specifies the maximum number of search hits to include in the
* response.
*/
public void setSize(Long size) {
this.size = size;
}
/**
* Specifies the maximum number of search hits to include in the
* response.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param size Specifies the maximum number of search hits to include in the
* response.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withSize(Long size) {
this.size = size;
return this;
}
/**
* 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 Sorting
* Results in the Amazon CloudSearch Developer Guide.
*
* @return 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 Sorting
* Results in the Amazon CloudSearch Developer Guide.
*/
public String getSort() {
return 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 Sorting
* Results in the Amazon CloudSearch Developer Guide.
*
* @param 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 Sorting
* Results in the Amazon CloudSearch Developer Guide.
*/
public void setSort(String sort) {
this.sort = 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 Sorting
* Results in the Amazon CloudSearch Developer Guide.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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 Sorting
* Results in the Amazon CloudSearch Developer Guide.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withSort(String sort) {
this.sort = sort;
return this;
}
/**
* 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*
* @return 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*/
public Long getStart() {
return 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*
* @param 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*/
public void setStart(Long start) {
this.start = 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param 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 Paginating
* Results in the Amazon CloudSearch Developer Guide.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public SearchRequest withStart(Long start) {
this.start = start;
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getCursor() != null) sb.append("Cursor: " + getCursor() + ",");
if (getExpr() != null) sb.append("Expr: " + getExpr() + ",");
if (getFacet() != null) sb.append("Facet: " + getFacet() + ",");
if (getFilterQuery() != null) sb.append("FilterQuery: " + getFilterQuery() + ",");
if (getHighlight() != null) sb.append("Highlight: " + getHighlight() + ",");
if (isPartial() != null) sb.append("Partial: " + isPartial() + ",");
if (getQuery() != null) sb.append("Query: " + getQuery() + ",");
if (getQueryOptions() != null) sb.append("QueryOptions: " + getQueryOptions() + ",");
if (getQueryParser() != null) sb.append("QueryParser: " + getQueryParser() + ",");
if (getReturn() != null) sb.append("Return: " + getReturn() + ",");
if (getSize() != null) sb.append("Size: " + getSize() + ",");
if (getSort() != null) sb.append("Sort: " + getSort() + ",");
if (getStart() != null) sb.append("Start: " + getStart() );
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getCursor() == null) ? 0 : getCursor().hashCode());
hashCode = prime * hashCode + ((getExpr() == null) ? 0 : getExpr().hashCode());
hashCode = prime * hashCode + ((getFacet() == null) ? 0 : getFacet().hashCode());
hashCode = prime * hashCode + ((getFilterQuery() == null) ? 0 : getFilterQuery().hashCode());
hashCode = prime * hashCode + ((getHighlight() == null) ? 0 : getHighlight().hashCode());
hashCode = prime * hashCode + ((isPartial() == null) ? 0 : isPartial().hashCode());
hashCode = prime * hashCode + ((getQuery() == null) ? 0 : getQuery().hashCode());
hashCode = prime * hashCode + ((getQueryOptions() == null) ? 0 : getQueryOptions().hashCode());
hashCode = prime * hashCode + ((getQueryParser() == null) ? 0 : getQueryParser().hashCode());
hashCode = prime * hashCode + ((getReturn() == null) ? 0 : getReturn().hashCode());
hashCode = prime * hashCode + ((getSize() == null) ? 0 : getSize().hashCode());
hashCode = prime * hashCode + ((getSort() == null) ? 0 : getSort().hashCode());
hashCode = prime * hashCode + ((getStart() == null) ? 0 : getStart().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (obj instanceof SearchRequest == false) return false;
SearchRequest other = (SearchRequest)obj;
if (other.getCursor() == null ^ this.getCursor() == null) return false;
if (other.getCursor() != null && other.getCursor().equals(this.getCursor()) == false) return false;
if (other.getExpr() == null ^ this.getExpr() == null) return false;
if (other.getExpr() != null && other.getExpr().equals(this.getExpr()) == false) return false;
if (other.getFacet() == null ^ this.getFacet() == null) return false;
if (other.getFacet() != null && other.getFacet().equals(this.getFacet()) == false) return false;
if (other.getFilterQuery() == null ^ this.getFilterQuery() == null) return false;
if (other.getFilterQuery() != null && other.getFilterQuery().equals(this.getFilterQuery()) == false) return false;
if (other.getHighlight() == null ^ this.getHighlight() == null) return false;
if (other.getHighlight() != null && other.getHighlight().equals(this.getHighlight()) == false) return false;
if (other.isPartial() == null ^ this.isPartial() == null) return false;
if (other.isPartial() != null && other.isPartial().equals(this.isPartial()) == false) return false;
if (other.getQuery() == null ^ this.getQuery() == null) return false;
if (other.getQuery() != null && other.getQuery().equals(this.getQuery()) == false) return false;
if (other.getQueryOptions() == null ^ this.getQueryOptions() == null) return false;
if (other.getQueryOptions() != null && other.getQueryOptions().equals(this.getQueryOptions()) == false) return false;
if (other.getQueryParser() == null ^ this.getQueryParser() == null) return false;
if (other.getQueryParser() != null && other.getQueryParser().equals(this.getQueryParser()) == false) return false;
if (other.getReturn() == null ^ this.getReturn() == null) return false;
if (other.getReturn() != null && other.getReturn().equals(this.getReturn()) == false) return false;
if (other.getSize() == null ^ this.getSize() == null) return false;
if (other.getSize() != null && other.getSize().equals(this.getSize()) == false) return false;
if (other.getSort() == null ^ this.getSort() == null) return false;
if (other.getSort() != null && other.getSort().equals(this.getSort()) == false) return false;
if (other.getStart() == null ^ this.getStart() == null) return false;
if (other.getStart() != null && other.getStart().equals(this.getStart()) == false) return false;
return true;
}
@Override
public SearchRequest clone() {
return (SearchRequest) super.clone();
}
}