diff --git a/packages/google-cloud-retail/protos/google/cloud/retail/v2/search_service.proto b/packages/google-cloud-retail/protos/google/cloud/retail/v2/search_service.proto
index 402d91da204..27cd38f9aa1 100644
--- a/packages/google-cloud-retail/protos/google/cloud/retail/v2/search_service.proto
+++ b/packages/google-cloud-retail/protos/google/cloud/retail/v2/search_service.proto
@@ -74,172 +74,35 @@ message SearchRequest {
// [FacetKey.query][google.cloud.retail.v2.SearchRequest.FacetSpec.FacetKey.query]
// is not specified:
//
- // * textual_field =
- //
- // *# The
- // [Product.brands][google.cloud.retail.v2.Product.brands].
*
- //
- // "brands";
- //
- //
- // *# The
- // [Product.categories][google.cloud.retail.v2.Product.categories].
*
- //
- // "categories";
- //
- //
- // *# The
- // [Audience.genders][google.cloud.retail.v2.Audience.genders].
*
- //
- // | "genders";
- //
- //
- // *# The
- // [Audience.age_groups][google.cloud.retail.v2.Audience.age_groups].
*
- //
- // | "ageGroups";
- //
- //
- // *# The
- // [Product.availability][google.cloud.retail.v2.Product.availability].
- // Value is one of
*
- // *# "IN_STOCK", "OUT_OF_STOCK", PREORDER", "BACKORDER".
*
- //
- // | "availability";
- //
- //
- // *# The
- // [ColorInfo.color_families][google.cloud.retail.v2.ColorInfo.color_families].
*
- //
- // | "colorFamilies";
- //
- //
- // *# The
- // [ColorInfo.colors][google.cloud.retail.v2.ColorInfo.colors].
*
- //
- // | "colors";
- //
- //
- // *# The [Product.sizes][google.cloud.retail.v2.Product.sizes].
*
- //
- // | "sizes";
- //
- //
- // *# The
- // [Product.materials][google.cloud.retail.v2.Product.materials].
*
- //
- // | "materials";
- //
- //
- // *# The
- // [Product.patterns][google.cloud.retail.v2.Product.patterns].
*
- //
- // | "patterns";
- //
- //
- // *# The
- // [Product.conditions][google.cloud.retail.v2.Product.conditions].
*
- //
- // | "conditions";
- //
- //
- // *# The textual custom attribute in
- // [Product][google.cloud.retail.v2.Product] object. Key can
*
- // *# be any key in the
- // [Product.attributes][google.cloud.retail.v2.Product.attributes]
- // map
*
- // *# if the attribute values are textual.
*
- // *# map.
*
- //
- // | "attributes.key";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.PICKUP_IN_STORE][].
*
- //
- // | "pickupInStore";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.SHIP_TO_STORE][].
*
- //
- // | "shipToStore";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.SAME_DAY_DELIVERY][].
*
- //
- // | "sameDayDelivery";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.NEXT_DAY_DELIVERY][].
*
- //
- // | "nextDayDelivery";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_1][].
*
- //
- // | "customFulfillment1";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_2][].
*
- //
- // | "customFulfillment2";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_3][].
*
- //
- // | "customFulfillment3";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_4][].
*
- //
- // | "customFulfillment4";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_5][].
*
- //
- // | "customFulfillment5";
+ // Textual facet keys:
+ // * brands
+ // * categories
+ // * genders
+ // * ageGroups
+ // * availability
+ // * colorFamilies
+ // * colors
+ // * sizes
+ // * materials
+ // * patterns
+ // * conditions
+ // * attributes.key
+ // * pickupInStore
+ // * shipToStore
+ // * sameDayDelivery
+ // * nextDayDelivery
+ // * customFulfillment1
+ // * customFulfillment2
+ // * customFulfillment3
+ // * customFulfillment4
+ // * customFulfillment5
//
- // * numerical_field =
- //
- // *# The
- // [PriceInfo.price][google.cloud.retail.v2.PriceInfo.price].
*
- //
- // "price";
- //
- //
- // *# The discount. Computed by (original_price-price)/price
*
- //
- // "discount";
- //
- //
- // *# The
- // [Rating.average_rating][google.cloud.retail.v2.Rating.average_rating].
*
- //
- // "rating";
- //
- //
- // *# The
- // [Rating.rating_count][google.cloud.retail.v2.Rating.rating_count].
*
- //
- // "ratingCount";
- //
- //
- // *# The numerical custom attribute in
- // [Product][google.cloud.retail.v2.Product] object. Key can
*
- // *# be any key in the
- // [Product.attributes][google.cloud.retail.v2.Product.attributes]
- // map
*
- // *# if the attribute values are numerical.
*
- //
- // | "attributes.key";
+ // Numeric facet keys:
+ // * price
+ // * discount
+ // * rating
+ // * ratingCount
+ // * attributes.key
string key = 1 [(google.api.field_behavior) = REQUIRED];
// Set only if values should be bucketized into intervals. Must be set
@@ -424,11 +287,12 @@ message SearchRequest {
// Examples:
//
// * To boost products with product ID "product_1" or "product_2", and
- // color
- // "Red" or "Blue":
- // *(id: ANY("product_1", "product_2"))
*
- // *AND
*
- // *(colorFamilies: ANY("Red", "Blue"))
*
+ // color "Red" or "Blue":
+ // ```
+ // (id: ANY("product_1", "product_2"))
+ // AND
+ // (colorFamilies: ANY("Red", "Blue"))
+ // ```
string condition = 1;
// Strength of the condition boost, which should be in [-1, 1]. Negative
diff --git a/packages/google-cloud-retail/protos/google/cloud/retail/v2alpha/search_service.proto b/packages/google-cloud-retail/protos/google/cloud/retail/v2alpha/search_service.proto
index 4344eae4182..df0cd86a14a 100644
--- a/packages/google-cloud-retail/protos/google/cloud/retail/v2alpha/search_service.proto
+++ b/packages/google-cloud-retail/protos/google/cloud/retail/v2alpha/search_service.proto
@@ -75,173 +75,35 @@ message SearchRequest {
// [FacetKey.query][google.cloud.retail.v2alpha.SearchRequest.FacetSpec.FacetKey.query]
// is not specified:
//
- // * textual_field =
- //
- // *# The
- // [Product.brands][google.cloud.retail.v2alpha.Product.brands].
*
- //
- // "brands";
- //
- //
- // *# The
- // [Product.categories][google.cloud.retail.v2alpha.Product.categories].
*
- //
- // "categories";
- //
- //
- // *# The
- // [Audience.genders][google.cloud.retail.v2alpha.Audience.genders].
*
- //
- // | "genders";
- //
- //
- // *# The
- // [Audience.age_groups][google.cloud.retail.v2alpha.Audience.age_groups].
*
- //
- // | "ageGroups";
- //
- //
- // *# The
- // [Product.availability][google.cloud.retail.v2alpha.Product.availability].
- // Value is one of
*
- // *# "IN_STOCK", "OUT_OF_STOCK", PREORDER", "BACKORDER".
*
- //
- // | "availability";
- //
- //
- // *# The
- // [ColorInfo.color_families][google.cloud.retail.v2alpha.ColorInfo.color_families].
*
- //
- // | "colorFamilies";
- //
- //
- // *# The
- // [ColorInfo.colors][google.cloud.retail.v2alpha.ColorInfo.colors].
*
- //
- // | "colors";
- //
- //
- // *# The
- // [Product.sizes][google.cloud.retail.v2alpha.Product.sizes].
*
- //
- // | "sizes";
- //
- //
- // *# The
- // [Product.materials][google.cloud.retail.v2alpha.Product.materials].
*
- //
- // | "materials";
- //
- //
- // *# The
- // [Product.patterns][google.cloud.retail.v2alpha.Product.patterns].
*
- //
- // | "patterns";
- //
- //
- // *# The
- // [Product.conditions][google.cloud.retail.v2alpha.Product.conditions].
*
- //
- // | "conditions";
- //
- //
- // *# The textual custom attribute in
- // [Product][google.cloud.retail.v2alpha.Product] object. Key can
*
- // *# be any key in the
- // [Product.attributes][google.cloud.retail.v2alpha.Product.attributes]
- // map
*
- // *# if the attribute values are textual.
*
- // *# map.
*
- //
- // | "attributes.key";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.PICKUP_IN_STORE][].
*
- //
- // | "pickupInStore";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.SHIP_TO_STORE][].
*
- //
- // | "shipToStore";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.SAME_DAY_DELIVERY][].
*
- //
- // | "sameDayDelivery";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.NEXT_DAY_DELIVERY][].
*
- //
- // | "nextDayDelivery";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_1][].
*
- //
- // | "customFulfillment1";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_2][].
*
- //
- // | "customFulfillment2";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_3][].
*
- //
- // | "customFulfillment3";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_4][].
*
- //
- // | "customFulfillment4";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_5][].
*
- //
- // | "customFulfillment5";
+ // Textual facet keys:
+ // * brands
+ // * categories
+ // * genders
+ // * ageGroups
+ // * availability
+ // * colorFamilies
+ // * colors
+ // * sizes
+ // * materials
+ // * patterns
+ // * conditions
+ // * attributes.key
+ // * pickupInStore
+ // * shipToStore
+ // * sameDayDelivery
+ // * nextDayDelivery
+ // * customFulfillment1
+ // * customFulfillment2
+ // * customFulfillment3
+ // * customFulfillment4
+ // * customFulfillment5
//
- // * numerical_field =
- //
- // *# The
- // [PriceInfo.price][google.cloud.retail.v2alpha.PriceInfo.price].
*
- //
- // "price";
- //
- //
- // *# The discount. Computed by (original_price-price)/price
*
- //
- // "discount";
- //
- //
- // *# The
- // [Rating.average_rating][google.cloud.retail.v2alpha.Rating.average_rating].
*
- //
- // "rating";
- //
- //
- // *# The
- // [Rating.rating_count][google.cloud.retail.v2alpha.Rating.rating_count].
*
- //
- // "ratingCount";
- //
- //
- // *# The numerical custom attribute in
- // [Product][google.cloud.retail.v2alpha.Product] object. Key can
*
- // *# be any key in the
- // [Product.attributes][google.cloud.retail.v2alpha.Product.attributes]
- // map
*
- // *# if the attribute values are numerical.
*
- //
- // | "attributes.key";
+ // Numeric facet keys:
+ // * price
+ // * discount
+ // * rating
+ // * ratingCount
+ // * attributes.key
string key = 1 [(google.api.field_behavior) = REQUIRED];
// Set only if values should be bucketized into intervals. Must be set
@@ -427,11 +289,12 @@ message SearchRequest {
// Examples:
//
// * To boost products with product ID "product_1" or "product_2", and
- // color
- // "Red" or "Blue":
- // *(id: ANY("product_1", "product_2"))
*
- // *AND
*
- // *(colorFamilies: ANY("Red", "Blue"))
*
+ // color "Red" or "Blue":
+ // ```
+ // (id: ANY("product_1", "product_2"))
+ // AND
+ // (colorFamilies: ANY("Red", "Blue"))
+ // ```
string condition = 1;
// Strength of the condition boost, which should be in [-1, 1]. Negative
diff --git a/packages/google-cloud-retail/protos/google/cloud/retail/v2beta/search_service.proto b/packages/google-cloud-retail/protos/google/cloud/retail/v2beta/search_service.proto
index 43cb86207fd..2647c7e0b66 100644
--- a/packages/google-cloud-retail/protos/google/cloud/retail/v2beta/search_service.proto
+++ b/packages/google-cloud-retail/protos/google/cloud/retail/v2beta/search_service.proto
@@ -75,173 +75,35 @@ message SearchRequest {
// [FacetKey.query][google.cloud.retail.v2beta.SearchRequest.FacetSpec.FacetKey.query]
// is not specified:
//
- // * textual_field =
- //
- // *# The
- // [Product.brands][google.cloud.retail.v2beta.Product.brands].
*
- //
- // "brands";
- //
- //
- // *# The
- // [Product.categories][google.cloud.retail.v2beta.Product.categories].
*
- //
- // "categories";
- //
- //
- // *# The
- // [Audience.genders][google.cloud.retail.v2beta.Audience.genders].
*
- //
- // | "genders";
- //
- //
- // *# The
- // [Audience.age_groups][google.cloud.retail.v2beta.Audience.age_groups].
*
- //
- // | "ageGroups";
- //
- //
- // *# The
- // [Product.availability][google.cloud.retail.v2beta.Product.availability].
- // Value is one of
*
- // *# "IN_STOCK", "OUT_OF_STOCK", PREORDER", "BACKORDER".
*
- //
- // | "availability";
- //
- //
- // *# The
- // [ColorInfo.color_families][google.cloud.retail.v2beta.ColorInfo.color_families].
*
- //
- // | "colorFamilies";
- //
- //
- // *# The
- // [ColorInfo.colors][google.cloud.retail.v2beta.ColorInfo.colors].
*
- //
- // | "colors";
- //
- //
- // *# The
- // [Product.sizes][google.cloud.retail.v2beta.Product.sizes].
*
- //
- // | "sizes";
- //
- //
- // *# The
- // [Product.materials][google.cloud.retail.v2beta.Product.materials].
*
- //
- // | "materials";
- //
- //
- // *# The
- // [Product.patterns][google.cloud.retail.v2beta.Product.patterns].
*
- //
- // | "patterns";
- //
- //
- // *# The
- // [Product.conditions][google.cloud.retail.v2beta.Product.conditions].
*
- //
- // | "conditions";
- //
- //
- // *# The textual custom attribute in
- // [Product][google.cloud.retail.v2beta.Product] object. Key can
*
- // *# be any key in the
- // [Product.attributes][google.cloud.retail.v2beta.Product.attributes]
- // map
*
- // *# if the attribute values are textual.
*
- // *# map.
*
- //
- // | "attributes.key";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.PICKUP_IN_STORE][].
*
- //
- // | "pickupInStore";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.SHIP_TO_STORE][].
*
- //
- // | "shipToStore";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.SAME_DAY_DELIVERY][].
*
- //
- // | "sameDayDelivery";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.NEXT_DAY_DELIVERY][].
*
- //
- // | "nextDayDelivery";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_1][].
*
- //
- // | "customFulfillment1";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_2][].
*
- //
- // | "customFulfillment2";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_3][].
*
- //
- // | "customFulfillment3";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_4][].
*
- //
- // | "customFulfillment4";
- //
- //
- // *# The [FulfillmentInfo.ids][] for type
- // *# [FulfillmentInfo.Type.CUSTOM_TYPE_5][].
*
- //
- // | "customFulfillment5";
+ // Textual facet keys:
+ // * brands
+ // * categories
+ // * genders
+ // * ageGroups
+ // * availability
+ // * colorFamilies
+ // * colors
+ // * sizes
+ // * materials
+ // * patterns
+ // * conditions
+ // * attributes.key
+ // * pickupInStore
+ // * shipToStore
+ // * sameDayDelivery
+ // * nextDayDelivery
+ // * customFulfillment1
+ // * customFulfillment2
+ // * customFulfillment3
+ // * customFulfillment4
+ // * customFulfillment5
//
- // * numerical_field =
- //
- // *# The
- // [PriceInfo.price][google.cloud.retail.v2beta.PriceInfo.price].
*
- //
- // "price";
- //
- //
- // *# The discount. Computed by (original_price-price)/price
*
- //
- // "discount";
- //
- //
- // *# The
- // [Rating.average_rating][google.cloud.retail.v2beta.Rating.average_rating].
*
- //
- // "rating";
- //
- //
- // *# The
- // [Rating.rating_count][google.cloud.retail.v2beta.Rating.rating_count].
*
- //
- // "ratingCount";
- //
- //
- // *# The numerical custom attribute in
- // [Product][google.cloud.retail.v2beta.Product] object. Key can
*
- // *# be any key in the
- // [Product.attributes][google.cloud.retail.v2beta.Product.attributes]
- // map
*
- // *# if the attribute values are numerical.
*
- //
- // | "attributes.key";
+ // Numeric facet keys:
+ // * price
+ // * discount
+ // * rating
+ // * ratingCount
+ // * attributes.key
string key = 1 [(google.api.field_behavior) = REQUIRED];
// Set only if values should be bucketized into intervals. Must be set
@@ -427,11 +289,12 @@ message SearchRequest {
// Examples:
//
// * To boost products with product ID "product_1" or "product_2", and
- // color
- // "Red" or "Blue":
- // *(id: ANY("product_1", "product_2"))
*
- // *AND
*
- // *(colorFamilies: ANY("Red", "Blue"))
*
+ // color "Red" or "Blue":
+ // ```
+ // (id: ANY("product_1", "product_2"))
+ // AND
+ // (colorFamilies: ANY("Red", "Blue"))
+ // ```
string condition = 1;
// Strength of the condition boost, which should be in [-1, 1]. Negative