Class SearchRequest (1.2.0)

public sealed class SearchRequest : IMessage<SearchRequest>, IEquatable<SearchRequest>, IDeepCloneable<SearchRequest>, IBufferMessage, IMessage, IPageRequest

Request message for [SearchService.Search][google.cloud.retail.v2.SearchService.Search] method.

Inheritance

Object > SearchRequest

Namespace

Google.Cloud.Retail.V2

Assembly

Google.Cloud.Retail.V2.dll

Constructors

SearchRequest()

public SearchRequest()

SearchRequest(SearchRequest)

public SearchRequest(SearchRequest other)
Parameter
NameDescription
otherSearchRequest

Properties

BoostSpec

public SearchRequest.Types.BoostSpec BoostSpec { get; set; }

Boost specification to boost certain products.

Property Value
TypeDescription
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
TypeDescription
String

BranchAsBranchName

public BranchName BranchAsBranchName { get; set; }

BranchName-typed view over the Branch resource name property.

Property Value
TypeDescription
BranchName

CanonicalFilter

public string CanonicalFilter { get; set; }

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
TypeDescription
String

DynamicFacetSpec

public SearchRequest.Types.DynamicFacetSpec DynamicFacetSpec { get; set; }

The specification for dynamically generated facets. Notice that only textual facets can be dynamically generated.

This feature requires additional allowlisting. Contact Retail Support (retail-search-support@google.com) if you are interested in using dynamic facet feature.

Property Value
TypeDescription
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
TypeDescription
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.

If this field is unrecognizable, an INVALID_ARGUMENT is returned.

Property Value
TypeDescription
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
TypeDescription
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.

If this field is unrecognizable, an INVALID_ARGUMENT is returned.

Property Value
TypeDescription
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, please 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
TypeDescription
RepeatedField<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

  1. Values above 120 will be coerced to 120.

If this field is negative, an INVALID_ARGUMENT is returned.

Property Value
TypeDescription
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
TypeDescription
String

Placement

public string Placement { get; set; }

Required. The resource name of the search engine placement, such as projects/*/locations/global/catalogs/default_catalog/placements/default_search. This field is used to identify the set of models that will be used to make the search.

We currently support one placement with the following ID:

  • default_search.
Property Value
TypeDescription
String

Query

public string Query { get; set; }

Raw search query.

Property Value
TypeDescription
String

QueryExpansionSpec

public SearchRequest.Types.QueryExpansionSpec QueryExpansionSpec { get; set; }

The query expansion specification that specifies the conditions under which query expansion will occur.

Property Value
TypeDescription
SearchRequest.Types.QueryExpansionSpec

UserInfo

public UserInfo UserInfo { get; set; }

User information.

Property Value
TypeDescription
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. The attributes from all the matching [variant][google.cloud.retail.v2.Product.Type.VARIANT] [Product][google.cloud.retail.v2.Product]s are merged and de-duplicated. Notice that rollup [variant][google.cloud.retail.v2.Product.Type.VARIANT] [Product][google.cloud.retail.v2.Product]s attributes will lead to extra query latency. Maximum number of keys is 10.

For [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info], a fulfillment type and a fulfillment ID must be provided in the format of "fulfillmentType.filfillmentId". E.g., in "pickupInStore.store123", "pickupInStore" is fulfillment type and "store123" is the store ID.

Supported keys are:

  • colorFamilies
  • price
  • originalPrice
  • discount
  • 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.ids][] for type [FulfillmentInfo.Type.PICKUP_IN_STORE][].
  • shipToStore.id, where id is any [FulfillmentInfo.ids][] for type [FulfillmentInfo.Type.SHIP_TO_STORE][].
  • sameDayDelivery.id, where id is any [FulfillmentInfo.ids][] for type [FulfillmentInfo.Type.SAME_DAY_DELIVERY][].
  • nextDayDelivery.id, where id is any [FulfillmentInfo.ids][] for type [FulfillmentInfo.Type.NEXT_DAY_DELIVERY][].
  • customFulfillment1.id, where id is any [FulfillmentInfo.ids][] for type [FulfillmentInfo.Type.CUSTOM_TYPE_1][].
  • customFulfillment2.id, where id is any [FulfillmentInfo.ids][] for type [FulfillmentInfo.Type.CUSTOM_TYPE_2][].
  • customFulfillment3.id, where id is any [FulfillmentInfo.ids][] for type [FulfillmentInfo.Type.CUSTOM_TYPE_3][].
  • customFulfillment4.id, where id is any [FulfillmentInfo.ids][] for type [FulfillmentInfo.Type.CUSTOM_TYPE_4][].
  • customFulfillment5.id, where id is any [FulfillmentInfo.ids][] for type [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
TypeDescription
RepeatedField<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.

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
TypeDescription
String