SearchServiceClient

SearchServiceClient

Service for search.

This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.

Constructor

new SearchServiceClient(optionsopt, gaxInstanceopt)

Construct an instance of SearchServiceClient.

Parameters:
Name Type Attributes Description
options object <optional>

The configuration object. The options accepted by the constructor are described in detail in this document. The common options are:

Properties
Name Type Attributes Description
credentials object <optional>

Credentials object.

Properties
Name Type Attributes Description
client_email string <optional>
private_key string <optional>
email string <optional>

Account email address. Required when using a .pem or .p12 keyFilename.

keyFilename string <optional>

Full path to the a .json, .pem, or .p12 key downloaded from the Google Developers Console. If you provide a path to a JSON file, the projectId option below is not necessary. NOTE: .pem and .p12 require you to specify options.email as well.

port number <optional>

The port on which to connect to the remote host.

projectId string <optional>

The project ID from the Google Developer's Console, e.g. 'grape-spaceship-123'. We will also check the environment variable GCLOUD_PROJECT for your project ID. If your app is running in an environment which supports Application Default Credentials, your project ID will be detected automatically.

apiEndpoint string <optional>

The domain name of the API remote host.

clientConfig gax.ClientConfig <optional>

Client configuration override. Follows the structure of gapicConfig.

fallback boolean <optional>

Use HTTP/1.1 REST mode. For more information, please check the documentation.

gaxInstance gax <optional>

loaded instance of google-gax. Useful if you need to avoid loading the default gRPC version and want to use the fallback HTTP implementation. Load only fallback version and pass it to the constructor: const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC const client = new SearchServiceClient({fallback: true}, gax);

Members

apiEndpoint

The DNS address for this API service.

apiEndpoint

The DNS address for this API service - same as servicePath.

port

The port for this API service.

scopes

The scopes needed to make gRPC calls for every method defined in this service.

servicePath

The DNS address for this API service.

Methods

attributesConfigPath(project, location, catalog) → {string}

Return a fully-qualified attributesConfig resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
Returns:
Type Description
string

Resource name string.

branchPath(project, location, catalog, branch) → {string}

Return a fully-qualified branch resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
branch string
Returns:
Type Description
string

Resource name string.

cancelOperation(request, optionsopt, callbackopt) → {Promise}

Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to Code.CANCELLED.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
name string

The name of the operation resource to be cancelled.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

Returns:
Type Description
Promise
  • The promise which resolves when API call finishes. The promise has a method named "cancel" which cancels the ongoing API call.
Example
```
const client = longrunning.operationsClient();
await client.cancelOperation({name: ''});
```

catalogPath(project, location, catalog) → {string}

Return a fully-qualified catalog resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
Returns:
Type Description
string

Resource name string.

close() → {Promise}

Terminate the gRPC channel and close the client.

The client will no longer be usable and all future behavior is undefined.

Returns:
Type Description
Promise

A promise that resolves when the client is closed.

completionConfigPath(project, location, catalog) → {string}

Return a fully-qualified completionConfig resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
Returns:
Type Description
string

Resource name string.

controlPath(project, location, catalog, control) → {string}

Return a fully-qualified control resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
control string
Returns:
Type Description
string

Resource name string.

deleteOperation(request, optionsopt, callbackopt) → {Promise}

Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
name string

The name of the operation resource to be deleted.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

Returns:
Type Description
Promise
  • The promise which resolves when API call finishes. The promise has a method named "cancel" which cancels the ongoing API call.
Example
```
const client = longrunning.operationsClient();
await client.deleteOperation({name: ''});
```

experimentPath(project, location, catalog, experiment) → {string}

Return a fully-qualified experiment resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
experiment string
Returns:
Type Description
string

Resource name string.

getLocation(request, optionsopt) → {Promise}

Gets information about a location.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
name string

Resource name for the location.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Promise
  • The promise which resolves to an array. The first element of the array is an object representing Location. Please see the documentation for more details and examples.
Example
```
const [response] = await client.getLocation(request);
```

getOperation(request, optionsopt, callbackopt) → {Promise}

Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
name string

The name of the operation resource.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback function <optional>

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing google.longrunning.Operation.

Returns:
Type Description
Promise
  • The promise which resolves to an array. The first element of the array is an object representing google.longrunning.Operation. The promise has a method named "cancel" which cancels the ongoing API call.
Example
```
const client = longrunning.operationsClient();
const name = '';
const [response] = await client.getOperation({name});
// doThingsWith(response)
```

getProjectId() → {Promise}

Return the project ID used by this class.

Returns:
Type Description
Promise

A promise that resolves to string containing the project ID.

initialize() → {Promise}

Initialize the client. Performs asynchronous operations (such as authentication) and prepares the client. This function will be called automatically when any class method is called for the first time, but if you need to initialize it before calling an actual method, feel free to call initialize() directly.

You can await on this method if you want to make sure the client is initialized.

Returns:
Type Description
Promise

A promise that resolves to an authenticated service stub.

listLocationsAsync(request, optionsopt) → {Object}

Lists information about the supported locations for this service. Returns an iterable object.

for-await-of syntax is used with the iterable to get response elements on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
name string

The resource that owns the locations collection, if applicable.

filter string

The standard list filter.

pageSize number

The standard list page size.

pageToken string

The standard list page token.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Object

An iterable Object that allows async iteration. When you iterate the returned iterable, each element will be an object representing Location. The API will be called under the hood as needed, once per the page, so you can stop the iteration when you don't need more results. Please see the documentation for more details and examples.

Example
```
const iterable = client.listLocationsAsync(request);
for await (const response of iterable) {
  // process response
}
```

listOperationsAsync(request, optionsopt) → {Object}

Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns UNIMPLEMENTED. Returns an iterable object.

For-await-of syntax is used with the iterable to recursively get response element on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
name string

The name of the operation collection.

filter string

The standard list filter.

pageSize number <optional>

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options Object <optional>

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

Returns:
Type Description
Object

An iterable Object that conforms to iteration protocols.

Example
```
const client = longrunning.operationsClient();
for await (const response of client.listOperationsAsync(request));
// doThingsWith(response)
```

matchBranchFromBranchName(branchName) → {string}

Parse the branch from Branch resource.

Parameters:
Name Type Description
branchName string

A fully-qualified path representing Branch resource.

Returns:
Type Description
string

A string representing the branch.

matchBranchFromProductName(productName) → {string}

Parse the branch from Product resource.

Parameters:
Name Type Description
productName string

A fully-qualified path representing Product resource.

Returns:
Type Description
string

A string representing the branch.

matchCatalogFromAttributesConfigName(attributesConfigName) → {string}

Parse the catalog from AttributesConfig resource.

Parameters:
Name Type Description
attributesConfigName string

A fully-qualified path representing AttributesConfig resource.

Returns:
Type Description
string

A string representing the catalog.

matchCatalogFromBranchName(branchName) → {string}

Parse the catalog from Branch resource.

Parameters:
Name Type Description
branchName string

A fully-qualified path representing Branch resource.

Returns:
Type Description
string

A string representing the catalog.

matchCatalogFromCatalogName(catalogName) → {string}

Parse the catalog from Catalog resource.

Parameters:
Name Type Description
catalogName string

A fully-qualified path representing Catalog resource.

Returns:
Type Description
string

A string representing the catalog.

matchCatalogFromCompletionConfigName(completionConfigName) → {string}

Parse the catalog from CompletionConfig resource.

Parameters:
Name Type Description
completionConfigName string

A fully-qualified path representing CompletionConfig resource.

Returns:
Type Description
string

A string representing the catalog.

matchCatalogFromControlName(controlName) → {string}

Parse the catalog from Control resource.

Parameters:
Name Type Description
controlName string

A fully-qualified path representing Control resource.

Returns:
Type Description
string

A string representing the catalog.

matchCatalogFromExperimentName(experimentName) → {string}

Parse the catalog from Experiment resource.

Parameters:
Name Type Description
experimentName string

A fully-qualified path representing Experiment resource.

Returns:
Type Description
string

A string representing the catalog.

matchCatalogFromModelName(modelName) → {string}

Parse the catalog from Model resource.

Parameters:
Name Type Description
modelName string

A fully-qualified path representing Model resource.

Returns:
Type Description
string

A string representing the catalog.

matchCatalogFromProductName(productName) → {string}

Parse the catalog from Product resource.

Parameters:
Name Type Description
productName string

A fully-qualified path representing Product resource.

Returns:
Type Description
string

A string representing the catalog.

matchCatalogFromServingConfigName(servingConfigName) → {string}

Parse the catalog from ServingConfig resource.

Parameters:
Name Type Description
servingConfigName string

A fully-qualified path representing ServingConfig resource.

Returns:
Type Description
string

A string representing the catalog.

matchControlFromControlName(controlName) → {string}

Parse the control from Control resource.

Parameters:
Name Type Description
controlName string

A fully-qualified path representing Control resource.

Returns:
Type Description
string

A string representing the control.

matchExperimentFromExperimentName(experimentName) → {string}

Parse the experiment from Experiment resource.

Parameters:
Name Type Description
experimentName string

A fully-qualified path representing Experiment resource.

Returns:
Type Description
string

A string representing the experiment.

matchLocationFromAttributesConfigName(attributesConfigName) → {string}

Parse the location from AttributesConfig resource.

Parameters:
Name Type Description
attributesConfigName string

A fully-qualified path representing AttributesConfig resource.

Returns:
Type Description
string

A string representing the location.

matchLocationFromBranchName(branchName) → {string}

Parse the location from Branch resource.

Parameters:
Name Type Description
branchName string

A fully-qualified path representing Branch resource.

Returns:
Type Description
string

A string representing the location.

matchLocationFromCatalogName(catalogName) → {string}

Parse the location from Catalog resource.

Parameters:
Name Type Description
catalogName string

A fully-qualified path representing Catalog resource.

Returns:
Type Description
string

A string representing the location.

matchLocationFromCompletionConfigName(completionConfigName) → {string}

Parse the location from CompletionConfig resource.

Parameters:
Name Type Description
completionConfigName string

A fully-qualified path representing CompletionConfig resource.

Returns:
Type Description
string

A string representing the location.

matchLocationFromControlName(controlName) → {string}

Parse the location from Control resource.

Parameters:
Name Type Description
controlName string

A fully-qualified path representing Control resource.

Returns:
Type Description
string

A string representing the location.

matchLocationFromExperimentName(experimentName) → {string}

Parse the location from Experiment resource.

Parameters:
Name Type Description
experimentName string

A fully-qualified path representing Experiment resource.

Returns:
Type Description
string

A string representing the location.

matchLocationFromModelName(modelName) → {string}

Parse the location from Model resource.

Parameters:
Name Type Description
modelName string

A fully-qualified path representing Model resource.

Returns:
Type Description
string

A string representing the location.

matchLocationFromProductName(productName) → {string}

Parse the location from Product resource.

Parameters:
Name Type Description
productName string

A fully-qualified path representing Product resource.

Returns:
Type Description
string

A string representing the location.

matchLocationFromServingConfigName(servingConfigName) → {string}

Parse the location from ServingConfig resource.

Parameters:
Name Type Description
servingConfigName string

A fully-qualified path representing ServingConfig resource.

Returns:
Type Description
string

A string representing the location.

matchModelFromModelName(modelName) → {string}

Parse the model from Model resource.

Parameters:
Name Type Description
modelName string

A fully-qualified path representing Model resource.

Returns:
Type Description
string

A string representing the model.

matchProductFromProductName(productName) → {string}

Parse the product from Product resource.

Parameters:
Name Type Description
productName string

A fully-qualified path representing Product resource.

Returns:
Type Description
string

A string representing the product.

matchProjectFromAttributesConfigName(attributesConfigName) → {string}

Parse the project from AttributesConfig resource.

Parameters:
Name Type Description
attributesConfigName string

A fully-qualified path representing AttributesConfig resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromBranchName(branchName) → {string}

Parse the project from Branch resource.

Parameters:
Name Type Description
branchName string

A fully-qualified path representing Branch resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromCatalogName(catalogName) → {string}

Parse the project from Catalog resource.

Parameters:
Name Type Description
catalogName string

A fully-qualified path representing Catalog resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromCompletionConfigName(completionConfigName) → {string}

Parse the project from CompletionConfig resource.

Parameters:
Name Type Description
completionConfigName string

A fully-qualified path representing CompletionConfig resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromControlName(controlName) → {string}

Parse the project from Control resource.

Parameters:
Name Type Description
controlName string

A fully-qualified path representing Control resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromExperimentName(experimentName) → {string}

Parse the project from Experiment resource.

Parameters:
Name Type Description
experimentName string

A fully-qualified path representing Experiment resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromModelName(modelName) → {string}

Parse the project from Model resource.

Parameters:
Name Type Description
modelName string

A fully-qualified path representing Model resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromProductName(productName) → {string}

Parse the project from Product resource.

Parameters:
Name Type Description
productName string

A fully-qualified path representing Product resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromServingConfigName(servingConfigName) → {string}

Parse the project from ServingConfig resource.

Parameters:
Name Type Description
servingConfigName string

A fully-qualified path representing ServingConfig resource.

Returns:
Type Description
string

A string representing the project.

matchServingConfigFromServingConfigName(servingConfigName) → {string}

Parse the serving_config from ServingConfig resource.

Parameters:
Name Type Description
servingConfigName string

A fully-qualified path representing ServingConfig resource.

Returns:
Type Description
string

A string representing the serving_config.

modelPath(project, location, catalog, model) → {string}

Return a fully-qualified model resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
model string
Returns:
Type Description
string

Resource name string.

productPath(project, location, catalog, branch, product) → {string}

Return a fully-qualified product resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
branch string
product string
Returns:
Type Description
string

Resource name string.

searchAsync(request, optionsopt) → {Object}

Equivalent to search, but returns an iterable object.

for-await-of syntax is used with the iterable to get response elements on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
placement string

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 are used to make the search.

branch string

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.

query string

Raw search query.

If this field is empty, the request is considered a category browsing request and returned results are based on filter and page_categories.

visitorId string

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.

The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.

userInfo google.cloud.retail.v2.UserInfo

User information.

pageSize number

Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120.

If this field is negative, an INVALID_ARGUMENT is returned.

pageToken string

A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.

offset number

A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset.

If this field is negative, an INVALID_ARGUMENT is returned.

filter string

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. For more information, see Filter.

If this field is unrecognizable, an INVALID_ARGUMENT is returned.

canonicalFilter string

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. In the case a query does not have a sufficient amount of results this filter will be used to determine whether or not to enable the query expansion flow. The original filter will still be used for the query expanded search. This field is strongly recommended to achieve high search quality.

For more information about filter syntax, see SearchRequest.filter.

orderBy string

The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see Order.

If this field is unrecognizable, an INVALID_ARGUMENT is returned.

facetSpecs Array.<number>

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.

dynamicFacetSpec google.cloud.retail.v2.SearchRequest.DynamicFacetSpec

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.

boostSpec google.cloud.retail.v2.SearchRequest.BoostSpec

Boost specification to boost certain products. For more information, see Boost results.

Notice that if both ServingConfig.boost_control_ids and 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.

queryExpansionSpec google.cloud.retail.v2.SearchRequest.QueryExpansionSpec

The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see Query expansion.

variantRollupKeys Array.<string>

The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30.

For 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 map.
  • attributes.key, where key is any key in the Product.attributes map.
  • pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "pickup-in-store".
  • shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "ship-to-store".
  • sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "same-day-delivery".
  • nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "next-day-delivery".
  • customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-1".
  • customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-2".
  • customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-3".
  • customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-4".
  • customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-5".

If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.

pageCategories Array.<string>

The categories associated with a category page. Must be set for category navigation queries to achieve good search quality. The format should be the same as 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"].

searchMode google.cloud.retail.v2.SearchRequest.SearchMode

The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.

personalizationSpec google.cloud.retail.v2.SearchRequest.PersonalizationSpec

The specification for personalization.

Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec.

labels Array.<number>

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.

For more information, see Requirements for labels in the Resource Manager documentation.

spellCorrectionSpec google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec

The spell correction specification that specifies the mode under which spell correction will take effect.

entity string

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 to get search results boosted by entity.

conversationalSearchSpec google.cloud.retail.v2.SearchRequest.ConversationalSearchSpec <optional>

Optional. This field specifies all conversational related parameters addition to traditional retail search.

tileNavigationSpec google.cloud.retail.v2.SearchRequest.TileNavigationSpec <optional>

Optional. This field specifies tile navigation related parameters.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Object

An iterable Object that allows async iteration. When you iterate the returned iterable, each element will be an object representing SearchResult. The API will be called under the hood as needed, once per the page, so you can stop the iteration when you don't need more results. Please see the documentation for more details and examples.

Example
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  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 are used to make the search.
   */
  // const placement = 'abc123'
  /**
   *  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.
   */
  // const branch = 'abc123'
  /**
   *  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.
   */
  // const query = 'abc123'
  /**
   *  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.
   */
  // const visitorId = 'abc123'
  /**
   *  User information.
   */
  // const userInfo = {}
  /**
   *  Maximum number of Product google.cloud.retail.v2.Product s to return. If
   *  unspecified, defaults to a reasonable value. The maximum allowed value is
   *  120. Values above 120 will be coerced to 120.
   *  If this field is negative, an INVALID_ARGUMENT is returned.
   */
  // const pageSize = 1234
  /**
   *  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.
   */
  // const pageToken = 'abc123'
  /**
   *  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.
   */
  // const offset = 1234
  /**
   *  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. For more information, see
   *  Filter (https://cloud.google.com/retail/docs/filter-and-order#filter).
   *  If this field is unrecognizable, an INVALID_ARGUMENT is returned.
   */
  // const filter = 'abc123'
  /**
   *  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. In the case a query does not have a sufficient
   *  amount of results this filter will be used to determine whether or not to
   *  enable the query expansion flow. The original filter will still be used for
   *  the query expanded search.
   *  This field is strongly recommended to achieve high search quality.
   *  For more information about filter syntax, see
   *  SearchRequest.filter google.cloud.retail.v2.SearchRequest.filter.
   */
  // const canonicalFilter = 'abc123'
  /**
   *  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. For
   *  more information, see
   *  Order (https://cloud.google.com/retail/docs/filter-and-order#order).
   *  If this field is unrecognizable, an INVALID_ARGUMENT is returned.
   */
  // const orderBy = 'abc123'
  /**
   *  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.
   */
  // const facetSpecs = [1,2,3,4]
  /**
   *  Boost specification to boost certain products. For more information, see
   *  Boost results (https://cloud.google.com/retail/docs/boosting).
   *  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.
   */
  // const boostSpec = {}
  /**
   *  The query expansion specification that specifies the conditions under which
   *  query expansion occurs. For more information, see Query
   *  expansion (https://cloud.google.com/retail/docs/result-size#query_expansion).
   */
  // const queryExpansionSpec = {}
  /**
   *  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.
   */
  // const variantRollupKeys = ['abc','def']
  /**
   *  The categories associated with a category page. Must be set 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".
   */
  // const pageCategories = ['abc','def']
  /**
   *  The search mode of the search request. If not specified, a single search
   *  request triggers both product search and faceted search.
   */
  // const searchMode = {}
  /**
   *  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.
   */
  // const personalizationSpec = {}
  /**
   *  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.
   *  For more information, see Requirements for
   *  labels (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
   *  in the Resource Manager documentation.
   */
  // const labels = [1,2,3,4]
  /**
   *  The spell correction specification that specifies the mode under
   *  which spell correction will take effect.
   */
  // const spellCorrectionSpec = {}
  /**
   *  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.
   */
  // const entity = 'abc123'
  /**
   *  Optional. This field specifies all conversational related parameters
   *  addition to traditional retail search.
   */
  // const conversationalSearchSpec = {}
  /**
   *  Optional. This field specifies tile navigation related parameters.
   */
  // const tileNavigationSpec = {}

  // Imports the Retail library
  const {SearchServiceClient} = require('@google-cloud/retail').v2;

  // Instantiates a client
  const retailClient = new SearchServiceClient();

  async function callSearch() {
    // Construct request
    const request = {
      placement,
      visitorId,
    };

    // Run request
    const iterable = retailClient.searchAsync(request);
    for await (const response of iterable) {
        console.log(response);
    }
  }

  callSearch();

searchStream(request, optionsopt) → {Stream}

Equivalent to method.name.toCamelCase(), but returns a NodeJS Stream object.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
placement string

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 are used to make the search.

branch string

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.

query string

Raw search query.

If this field is empty, the request is considered a category browsing request and returned results are based on filter and page_categories.

visitorId string

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.

The field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.

userInfo google.cloud.retail.v2.UserInfo

User information.

pageSize number

Maximum number of Products to return. If unspecified, defaults to a reasonable value. The maximum allowed value is 120. Values above 120 will be coerced to 120.

If this field is negative, an INVALID_ARGUMENT is returned.

pageToken string

A page token SearchResponse.next_page_token, received from a previous SearchService.Search call. Provide this to retrieve the subsequent page.

When paginating, all other parameters provided to SearchService.Search must match the call that provided the page token. Otherwise, an INVALID_ARGUMENT error is returned.

offset number

A 0-indexed integer that specifies the current offset (that is, starting result location, amongst the Products deemed by the API as relevant) in search results. This field is only considered if page_token is unset.

If this field is negative, an INVALID_ARGUMENT is returned.

filter string

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. For more information, see Filter.

If this field is unrecognizable, an INVALID_ARGUMENT is returned.

canonicalFilter string

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. In the case a query does not have a sufficient amount of results this filter will be used to determine whether or not to enable the query expansion flow. The original filter will still be used for the query expanded search. This field is strongly recommended to achieve high search quality.

For more information about filter syntax, see SearchRequest.filter.

orderBy string

The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see Order.

If this field is unrecognizable, an INVALID_ARGUMENT is returned.

facetSpecs Array.<number>

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.

dynamicFacetSpec google.cloud.retail.v2.SearchRequest.DynamicFacetSpec

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.

boostSpec google.cloud.retail.v2.SearchRequest.BoostSpec

Boost specification to boost certain products. For more information, see Boost results.

Notice that if both ServingConfig.boost_control_ids and 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.

queryExpansionSpec google.cloud.retail.v2.SearchRequest.QueryExpansionSpec

The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see Query expansion.

variantRollupKeys Array.<string>

The keys to fetch and rollup the matching variant Products attributes, FulfillmentInfo or LocalInventorys attributes. The attributes from all the matching variant Products or LocalInventorys are merged and de-duplicated. Notice that rollup attributes will lead to extra query latency. Maximum number of keys is 30.

For 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 map.
  • attributes.key, where key is any key in the Product.attributes map.
  • pickupInStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "pickup-in-store".
  • shipToStore.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "ship-to-store".
  • sameDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "same-day-delivery".
  • nextDayDelivery.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "next-day-delivery".
  • customFulfillment1.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-1".
  • customFulfillment2.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-2".
  • customFulfillment3.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-3".
  • customFulfillment4.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-4".
  • customFulfillment5.id, where id is any FulfillmentInfo.place_ids for FulfillmentInfo.type "custom-type-5".

If this field is set to an invalid value other than these, an INVALID_ARGUMENT error is returned.

pageCategories Array.<string>

The categories associated with a category page. Must be set for category navigation queries to achieve good search quality. The format should be the same as 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"].

searchMode google.cloud.retail.v2.SearchRequest.SearchMode

The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.

personalizationSpec google.cloud.retail.v2.SearchRequest.PersonalizationSpec

The specification for personalization.

Notice that if both ServingConfig.personalization_spec and SearchRequest.personalization_spec are set. SearchRequest.personalization_spec will override ServingConfig.personalization_spec.

labels Array.<number>

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.

For more information, see Requirements for labels in the Resource Manager documentation.

spellCorrectionSpec google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec

The spell correction specification that specifies the mode under which spell correction will take effect.

entity string

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 to get search results boosted by entity.

conversationalSearchSpec google.cloud.retail.v2.SearchRequest.ConversationalSearchSpec <optional>

Optional. This field specifies all conversational related parameters addition to traditional retail search.

tileNavigationSpec google.cloud.retail.v2.SearchRequest.TileNavigationSpec <optional>

Optional. This field specifies tile navigation related parameters.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Stream

An object stream which emits an object representing SearchResult on 'data' event. The client library will perform auto-pagination by default: it will call the API as many times as needed. Note that it can affect your quota. We recommend using searchAsync() method described below for async iteration which you can stop as needed. Please see the documentation for more details and examples.

servingConfigPath(project, location, catalog, serving_config) → {string}

Return a fully-qualified servingConfig resource name string.

Parameters:
Name Type Description
project string
location string
catalog string
serving_config string
Returns:
Type Description
string

Resource name string.