public sealed class SearchRequest : IMessage<SearchRequest>, IEquatable<SearchRequest>, IDeepCloneable<SearchRequest>, IBufferMessage, IMessage, IPageRequest
Reference documentation and code samples for the Retail v2 API class SearchRequest.
Request message for [SearchService.Search][google.cloud.retail.v2.SearchService.Search] method.
Implements
IMessageSearchRequest, IEquatableSearchRequest, IDeepCloneableSearchRequest, 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 |
SearchRequestTypesBoostSpec |
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 |
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 |
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 |
SearchRequestTypesDynamicFacetSpec |
Entity
public string Entity { get; set; }
The entity for customers that may run multiple different entities, domains,
sites or regions, for example, Google US
, Google Ads
, Waymo
,
google.com
, youtube.com
, etc.
If this is set, it should be exactly matched with
[UserEvent.entity][google.cloud.retail.v2.UserEvent.entity] to get search
results boosted by entity.
Property Value | |
---|---|
Type | Description |
string |
FacetSpecs
public RepeatedField<SearchRequest.Types.FacetSpec> FacetSpecs { get; }
Facet specifications for faceted search. If empty, no facets are returned.
A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error is returned.
Property Value | |
---|---|
Type | Description |
RepeatedFieldSearchRequestTypesFacetSpec |
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 |
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 |
MapFieldstringstring |
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 |
int |
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 |
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 |
RepeatedFieldstring |
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 |
int |
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 |
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 |
SearchRequestTypesPersonalizationSpec |
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 |
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 |
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 |
SearchRequestTypesQueryExpansionSpec |
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 |
SearchRequestTypesSearchMode |
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 |
SearchRequestTypesSpellCorrectionSpec |
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 |
RepeatedFieldstring |
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 |
string |