Class SearchResponse.Types.SearchResult (1.2.0)

public sealed class SearchResult : IMessage<SearchResponse.Types.SearchResult>, IEquatable<SearchResponse.Types.SearchResult>, IDeepCloneable<SearchResponse.Types.SearchResult>, IBufferMessage, IMessage

Represents the search results.

Inheritance

Object > SearchResponse.Types.SearchResult

Namespace

Google.Cloud.Retail.V2

Assembly

Google.Cloud.Retail.V2.dll

Constructors

SearchResult()

public SearchResult()

SearchResult(SearchResponse.Types.SearchResult)

public SearchResult(SearchResponse.Types.SearchResult other)
Parameter
NameDescription
otherSearchResponse.Types.SearchResult

Properties

Id

public string Id { get; set; }

[Product.id][google.cloud.retail.v2.Product.id] of the searched [Product][google.cloud.retail.v2.Product].

Property Value
TypeDescription
String

MatchingVariantCount

public int MatchingVariantCount { get; set; }

The count of matched [variant][google.cloud.retail.v2.Product.Type.VARIANT] [Product][google.cloud.retail.v2.Product]s.

Property Value
TypeDescription
Int32

MatchingVariantFields

public MapField<string, FieldMask> MatchingVariantFields { get; }

If a [variant][google.cloud.retail.v2.Product.Type.VARIANT] [Product][google.cloud.retail.v2.Product] matches the search query, this map indicates which [Product][google.cloud.retail.v2.Product] fields are matched. The key is the [Product.name][google.cloud.retail.v2.Product.name], the value is a field mask of the matched [Product][google.cloud.retail.v2.Product] fields. If matched attributes cannot be determined, this map will be empty.

For example, a key "sku1" with field mask "products.color_info" indicates there is a match between "sku1" [ColorInfo][google.cloud.retail.v2.ColorInfo] and the query.

Property Value
TypeDescription
MapField<String, FieldMask>

Product

public Product Product { get; set; }

The product data snippet in the search response. Only [Product.name][google.cloud.retail.v2.Product.name] is guaranteed to be populated.

[Product.variants][google.cloud.retail.v2.Product.variants] contains the product variants that match the search query. If there are multiple product variants matching the query, top 5 most relevant product variants are returned and ordered by relevancy.

If relevancy can be deternmined, use [matching_variant_fields][google.cloud.retail.v2.SearchResponse.SearchResult.matching_variant_fields] to look up matched product variants fields. If relevancy cannot be determined, e.g. when searching "shoe" all products in a shoe product can be a match, 5 product variants are returned but order is meaningless.

Property Value
TypeDescription
Product

VariantRollupValues

public MapField<string, Value> VariantRollupValues { get; }

The rollup matching [variant][google.cloud.retail.v2.Product.Type.VARIANT] [Product][google.cloud.retail.v2.Product] attributes. The key is one of the [SearchRequest.variant_rollup_keys][google.cloud.retail.v2.SearchRequest.variant_rollup_keys]. The values are the merged and de-duplicated [Product][google.cloud.retail.v2.Product] attributes. Notice that the rollup values are respect filter. For example, when filtering by "colorFamilies:ANY(&quot;red&quot;)" and rollup "colorFamilies", only "red" is returned.

For textual and numerical attributes, the rollup values is a list of string or double values with type [google.protobuf.ListValue][google.protobuf.ListValue]. For example, if there are two variants with colors "red" and "blue", the rollup values are

{ key: "colorFamilies" value { list_value { values { string_value: "red" } values { string_value: "blue" } } } }

For [Product.fulfillment_info][google.cloud.retail.v2.Product.fulfillment_info], the rollup values is a double value with type [google.protobuf.Value][google.protobuf.Value]. For example: {key: &quot;pickupInStore.store1&quot; value { number_value: 10 }} means a there are 10 variants in this product are available in the store "store1".

Property Value
TypeDescription
MapField<String, Value>