public sealed class SearchRequest : IMessage<SearchRequest>, IEquatable<SearchRequest>, IDeepCloneable<SearchRequest>, IBufferMessage, IMessage, IPageRequestReference documentation and code samples for the Retail v2 API class SearchRequest.
Request message for [SearchService.Search][google.cloud.retail.v2.SearchService.Search] method.
Implements
IMessage<SearchRequest>, IEquatable<SearchRequest>, IDeepCloneable<SearchRequest>, IBufferMessage, IMessage, IPageRequestNamespace
Google.Cloud.Retail.V2Assembly
Google.Cloud.Retail.V2.dll
Constructors
SearchRequest()
public SearchRequest()SearchRequest(SearchRequest)
public SearchRequest(SearchRequest other)| Parameter | |
|---|---|
| Name | Description | 
other | 
        SearchRequest | 
      
Properties
BoostSpec
public SearchRequest.Types.BoostSpec BoostSpec { get; set; }Boost specification to boost certain products. See more details at this user guide.
Notice that if both [ServingConfig.boost_control_ids][google.cloud.retail.v2.ServingConfig.boost_control_ids] and [SearchRequest.boost_spec][google.cloud.retail.v2.SearchRequest.boost_spec] are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions.
| Property Value | |
|---|---|
| Type | Description | 
SearchRequest.Types.BoostSpec | 
        |
Branch
public string Branch { get; set; }The branch resource name, such as
projects/*/locations/global/catalogs/default_catalog/branches/0.
Use "default_branch" as the branch ID or leave this field empty, to search products under the default branch.
| Property Value | |
|---|---|
| Type | Description | 
System.String | 
        |
BranchAsBranchName
public BranchName BranchAsBranchName { get; set; }BranchName-typed view over the Branch resource name property.
| Property Value | |
|---|---|
| Type | Description | 
BranchName | 
        |
CanonicalFilter
public string CanonicalFilter { get; set; }The default filter that is applied when a user performs a search without checking any filters on the search page.
The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with [SearchRequest.canonical_filter][google.cloud.retail.v2.SearchRequest.canonical_filter] will be returned as a supplement of the original query. This field is strongly recommended to achieve high search quality.
See [SearchRequest.filter][google.cloud.retail.v2.SearchRequest.filter] for more details about filter syntax.
| Property Value | |
|---|---|
| Type | Description | 
System.String | 
        |
DynamicFacetSpec
[Obsolete]
public SearchRequest.Types.DynamicFacetSpec DynamicFacetSpec { get; set; }Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic to enable dynamic facets. Do not set this field.
The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated.
| Property Value | |
|---|---|
| Type | Description | 
SearchRequest.Types.DynamicFacetSpec | 
        |
FacetSpecs
public RepeatedField<SearchRequest.Types.FacetSpec> FacetSpecs { get; }Facet specifications for faceted search. If empty, no facets are returned.
A maximum of 100 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.
| Property Value | |
|---|---|
| Type | Description | 
RepeatedField<SearchRequest.Types.FacetSpec> | 
        |
Filter
public string Filter { get; set; }The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. See more details at this user guide.
If this field is unrecognizable, an INVALID_ARGUMENT is returned.
| Property Value | |
|---|---|
| Type | Description | 
System.String | 
        |
Labels
public MapField<string, string> Labels { get; }The labels applied to a resource must meet the following requirements:
- Each resource can have multiple labels, up to a maximum of 64.
 - Each label must be a key-value pair.
 - Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters.
 - Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed.
 - The key portion of a label must be unique. However, you can use the same key with multiple resources.
 - Keys must start with a lowercase letter or international character.
 
See Google Cloud Document for more details.
| Property Value | |
|---|---|
| Type | Description | 
MapField<System.String, System.String> | 
        |
Offset
public int Offset { get; set; }A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the [Product][google.cloud.retail.v2.Product]s deemed by the API as relevant) in search results. This field is only considered if [page_token][google.cloud.retail.v2.SearchRequest.page_token] is unset.
If this field is negative, an INVALID_ARGUMENT is returned.
| Property Value | |
|---|---|
| Type | Description | 
Int32 | 
        |
OrderBy
public string OrderBy { get; set; }The order in which products are returned. Products can be ordered by a field in an [Product][google.cloud.retail.v2.Product] object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this user guide.
If this field is unrecognizable, an INVALID_ARGUMENT is returned.
| Property Value | |
|---|---|
| Type | Description | 
System.String | 
        |
PageCategories
public RepeatedField<string> PageCategories { get; }The categories associated with a category page. Required for category navigation queries to achieve good search quality. The format should be the same as [UserEvent.page_categories][google.cloud.retail.v2.UserEvent.page_categories];
To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s).
Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: "pageCategories" : ["Sales > 2017 Black Friday Deals"].
| Property Value | |
|---|---|
| Type | Description | 
RepeatedField<System.String> | 
        |
PageSize
public int PageSize { get; set; }Maximum number of [Product][google.cloud.retail.v2.Product]s to return. If unspecified, defaults to a reasonable value. The maximum allowed value is
- Values above 120 will be coerced to 120.
 
If this field is negative, an INVALID_ARGUMENT is returned.
| Property Value | |
|---|---|
| Type | Description | 
Int32 | 
        |
PageToken
public string PageToken { get; set; }A page token [SearchResponse.next_page_token][google.cloud.retail.v2.SearchResponse.next_page_token], received from a previous [SearchService.Search][google.cloud.retail.v2.SearchService.Search] call. Provide this to retrieve the subsequent page.
When paginating, all other parameters provided to [SearchService.Search][google.cloud.retail.v2.SearchService.Search] must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.
| Property Value | |
|---|---|
| Type | Description | 
System.String | 
        |
PersonalizationSpec
public SearchRequest.Types.PersonalizationSpec PersonalizationSpec { get; set; }The specification for personalization.
Notice that if both [ServingConfig.personalization_spec][google.cloud.retail.v2.ServingConfig.personalization_spec] and [SearchRequest.personalization_spec][google.cloud.retail.v2.SearchRequest.personalization_spec] are set. [SearchRequest.personalization_spec][google.cloud.retail.v2.SearchRequest.personalization_spec] will override [ServingConfig.personalization_spec][google.cloud.retail.v2.ServingConfig.personalization_spec].
| Property Value | |
|---|---|
| Type | Description | 
SearchRequest.Types.PersonalizationSpec | 
        |
Placement
public string Placement { get; set; }Required. The resource name of the Retail Search serving config, such as
projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config
or the name of the legacy placement resource, such as
projects/*/locations/global/catalogs/default_catalog/placements/default_search.
This field is used to identify the serving config name and the set
of models that will be used to make the search.
| Property Value | |
|---|---|
| Type | Description | 
System.String | 
        |
Query
public string Query { get; set; }Raw search query.
If this field is empty, the request is considered a category browsing request and returned results are based on [filter][google.cloud.retail.v2.SearchRequest.filter] and [page_categories][google.cloud.retail.v2.SearchRequest.page_categories].
| Property Value | |
|---|---|
| Type | Description | 
System.String | 
        |
QueryExpansionSpec
public SearchRequest.Types.QueryExpansionSpec QueryExpansionSpec { get; set; }The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this user guide.
| Property Value | |
|---|---|
| Type | Description | 
SearchRequest.Types.QueryExpansionSpec | 
        |
SearchMode
public SearchRequest.Types.SearchMode SearchMode { get; set; }The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.
| Property Value | |
|---|---|
| Type | Description | 
SearchRequest.Types.SearchMode | 
        |
SpellCorrectionSpec
public SearchRequest.Types.SpellCorrectionSpec SpellCorrectionSpec { get; set; }The spell correction specification that specifies the mode under which spell correction will take effect.
| Property Value | |
|---|---|
| Type | Description | 
SearchRequest.Types.SpellCorrectionSpec | 
        |
UserInfo
public UserInfo UserInfo { get; set; }User information.
| Property Value | |
|---|---|
| Type | Description | 
UserInfo | 
        |
VariantRollupKeys
public RepeatedField<string> VariantRollupKeys { get; }The keys to fetch and rollup the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT] [Product][google.cloud.retail.v2.Product]s attributes, [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo] or [LocalInventory][google.cloud.retail.v2.LocalInventory]s attributes. The attributes from all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT] [Product][google.cloud.retail.v2.Product]s or [LocalInventory][google.cloud.retail.v2.LocalInventory]s are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30.
For [FulfillmentInfo][google.cloud.retail.v2.FulfillmentInfo], a fulfillment type and a fulfillment ID must be provided in the format of "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123", "pickupInStore" is fulfillment type and "store123" is the store ID.
Supported keys are:
- colorFamilies
 - price
 - originalPrice
 - discount
 - variantId
 - inventory(place_id,price)
 - inventory(place_id,original_price)
 - inventory(place_id,attributes.key), where key is any key in the [Product.local_inventories.attributes][google.cloud.retail.v2.LocalInventory.attributes] map.
 - attributes.key, where key is any key in the [Product.attributes][google.cloud.retail.v2.Product.attributes] map.
 - pickupInStore.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "pickup-in-store".
 - shipToStore.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "ship-to-store".
 - sameDayDelivery.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "same-day-delivery".
 - nextDayDelivery.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "next-day-delivery".
 - customFulfillment1.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "custom-type-1".
 - customFulfillment2.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "custom-type-2".
 - customFulfillment3.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "custom-type-3".
 - customFulfillment4.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "custom-type-4".
 - customFulfillment5.id, where id is any [FulfillmentInfo.place_ids][google.cloud.retail.v2.FulfillmentInfo.place_ids] for [FulfillmentInfo.type][google.cloud.retail.v2.FulfillmentInfo.type] "custom-type-5".
 
If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.
| Property Value | |
|---|---|
| Type | Description | 
RepeatedField<System.String> | 
        |
VisitorId
public string VisitorId { get; set; }Required. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be able to uniquely identify a visitor on a single device. This unique identifier should not change if the visitor logs in or out of the website.
This should be the same identifier as [UserEvent.visitor_id][google.cloud.retail.v2.UserEvent.visitor_id].
The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.
| Property Value | |
|---|---|
| Type | Description | 
System.String | 
        |