Service for search.
This feature is only available for users who have Retail Search enabled. Please enable Retail Search on Cloud Console before using this feature. v2
Package
@google-cloud/retailConstructors
(constructor)(opts)
constructor(opts?: ClientOptions);
Construct an instance of SearchServiceClient.
Name | Description |
opts |
ClientOptions
|
Properties
apiEndpoint
static get apiEndpoint(): string;
The DNS address for this API service - same as servicePath(), exists for compatibility reasons.
auth
auth: gax.GoogleAuth;
descriptors
descriptors: Descriptors;
innerApiCalls
innerApiCalls: {
[name: string]: Function;
};
pathTemplates
pathTemplates: {
[name: string]: gax.PathTemplate;
};
port
static get port(): number;
The port for this API service.
scopes
static get scopes(): string[];
The scopes needed to make gRPC calls for every method defined in this service.
searchServiceStub
searchServiceStub?: Promise<{
[name: string]: Function;
}>;
servicePath
static get servicePath(): string;
The DNS address for this API service.
warn
warn: (code: string, message: string, warnType?: string) => void;
Methods
branchPath(project, location, catalog, branch)
branchPath(project: string, location: string, catalog: string, branch: string): string;
Return a fully-qualified branch resource name string.
Name | Description |
project |
string
|
location |
string
|
catalog |
string
|
branch |
string
|
Type | Description |
string | {string} Resource name string. |
catalogPath(project, location, catalog)
catalogPath(project: string, location: string, catalog: string): string;
Return a fully-qualified catalog resource name string.
Name | Description |
project |
string
|
location |
string
|
catalog |
string
|
Type | Description |
string | {string} Resource name string. |
close()
close(): Promise<void>;
Terminate the gRPC channel and close the client.
The client will no longer be usable and all future behavior is undefined.
Type | Description |
Promise<void> | {Promise} A promise that resolves when the client is closed. |
getProjectId()
getProjectId(): Promise<string>;
Type | Description |
Promise<string> |
getProjectId(callback)
getProjectId(callback: Callback<string, undefined, undefined>): void;
Name | Description |
callback |
Callback<string, undefined, undefined>
|
Type | Description |
void |
initialize()
initialize(): Promise<{
[name: string]: Function;
}>;
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.
Type | Description |
Promise<{ [name: string]: Function; }> | {Promise} A promise that resolves to an authenticated service stub. |
matchBranchFromBranchName(branchName)
matchBranchFromBranchName(branchName: string): string | number;
Parse the branch from Branch resource.
Name | Description |
branchName |
string
A fully-qualified path representing Branch resource. |
Type | Description |
string | number | {string} A string representing the branch. |
matchBranchFromProductName(productName)
matchBranchFromProductName(productName: string): string | number;
Parse the branch from Product resource.
Name | Description |
productName |
string
A fully-qualified path representing Product resource. |
Type | Description |
string | number | {string} A string representing the branch. |
matchCatalogFromBranchName(branchName)
matchCatalogFromBranchName(branchName: string): string | number;
Parse the catalog from Branch resource.
Name | Description |
branchName |
string
A fully-qualified path representing Branch resource. |
Type | Description |
string | number | {string} A string representing the catalog. |
matchCatalogFromCatalogName(catalogName)
matchCatalogFromCatalogName(catalogName: string): string | number;
Parse the catalog from Catalog resource.
Name | Description |
catalogName |
string
A fully-qualified path representing Catalog resource. |
Type | Description |
string | number | {string} A string representing the catalog. |
matchCatalogFromProductName(productName)
matchCatalogFromProductName(productName: string): string | number;
Parse the catalog from Product resource.
Name | Description |
productName |
string
A fully-qualified path representing Product resource. |
Type | Description |
string | number | {string} A string representing the catalog. |
matchLocationFromBranchName(branchName)
matchLocationFromBranchName(branchName: string): string | number;
Parse the location from Branch resource.
Name | Description |
branchName |
string
A fully-qualified path representing Branch resource. |
Type | Description |
string | number | {string} A string representing the location. |
matchLocationFromCatalogName(catalogName)
matchLocationFromCatalogName(catalogName: string): string | number;
Parse the location from Catalog resource.
Name | Description |
catalogName |
string
A fully-qualified path representing Catalog resource. |
Type | Description |
string | number | {string} A string representing the location. |
matchLocationFromProductName(productName)
matchLocationFromProductName(productName: string): string | number;
Parse the location from Product resource.
Name | Description |
productName |
string
A fully-qualified path representing Product resource. |
Type | Description |
string | number | {string} A string representing the location. |
matchProductFromProductName(productName)
matchProductFromProductName(productName: string): string | number;
Parse the product from Product resource.
Name | Description |
productName |
string
A fully-qualified path representing Product resource. |
Type | Description |
string | number | {string} A string representing the product. |
matchProjectFromBranchName(branchName)
matchProjectFromBranchName(branchName: string): string | number;
Parse the project from Branch resource.
Name | Description |
branchName |
string
A fully-qualified path representing Branch resource. |
Type | Description |
string | number | {string} A string representing the project. |
matchProjectFromCatalogName(catalogName)
matchProjectFromCatalogName(catalogName: string): string | number;
Parse the project from Catalog resource.
Name | Description |
catalogName |
string
A fully-qualified path representing Catalog resource. |
Type | Description |
string | number | {string} A string representing the project. |
matchProjectFromProductName(productName)
matchProjectFromProductName(productName: string): string | number;
Parse the project from Product resource.
Name | Description |
productName |
string
A fully-qualified path representing Product resource. |
Type | Description |
string | number | {string} A string representing the project. |
productPath(project, location, catalog, branch, product)
productPath(project: string, location: string, catalog: string, branch: string, product: string): string;
Return a fully-qualified product resource name string.
Name | Description |
project |
string
|
location |
string
|
catalog |
string
|
branch |
string
|
product |
string
|
Type | Description |
string | {string} Resource name string. |
search(request, options)
search(request?: protos.google.cloud.retail.v2.ISearchRequest, options?: CallOptions): Promise<[
protos.google.cloud.retail.v2.SearchResponse.ISearchResult[],
protos.google.cloud.retail.v2.ISearchRequest | null,
protos.google.cloud.retail.v2.ISearchResponse
]>;
Performs a search.
This feature is only available for users who have Retail Search enabled. Please enable Retail Search on Cloud Console before using this feature.
Name | Description |
request |
protos.google.cloud.retail.v2.ISearchRequest
The request object that will be sent. |
options |
CallOptions
Call options. See CallOptions for more details. |
Type | Description |
Promise<[ protos.google.cloud.retail.v2.SearchResponse.ISearchResult[], protos.google.cloud.retail.v2.ISearchRequest | null, protos.google.cloud.retail.v2.ISearchResponse ]> | {Promise} - The promise which resolves to an array. The first element of the array is Array of [SearchResult]. The client library will perform auto-pagination by default: it will call the API as many times as needed and will merge results from all the pages into this array. Note that it can affect your quota. We recommend using |
search(request, options, callback)
search(request: protos.google.cloud.retail.v2.ISearchRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.retail.v2.ISearchRequest, protos.google.cloud.retail.v2.ISearchResponse | null | undefined, protos.google.cloud.retail.v2.SearchResponse.ISearchResult>): void;
Name | Description |
request |
protos.google.cloud.retail.v2.ISearchRequest
|
options |
CallOptions
|
callback |
PaginationCallback<protos.google.cloud.retail.v2.ISearchRequest, protos.google.cloud.retail.v2.ISearchResponse | null | undefined, protos.google.cloud.retail.v2.SearchResponse.ISearchResult>
|
Type | Description |
void |
search(request, callback)
search(request: protos.google.cloud.retail.v2.ISearchRequest, callback: PaginationCallback<protos.google.cloud.retail.v2.ISearchRequest, protos.google.cloud.retail.v2.ISearchResponse | null | undefined, protos.google.cloud.retail.v2.SearchResponse.ISearchResult>): void;
Name | Description |
request |
protos.google.cloud.retail.v2.ISearchRequest
|
callback |
PaginationCallback<protos.google.cloud.retail.v2.ISearchRequest, protos.google.cloud.retail.v2.ISearchResponse | null | undefined, protos.google.cloud.retail.v2.SearchResponse.ISearchResult>
|
Type | Description |
void |
searchAsync(request, options)
searchAsync(request?: protos.google.cloud.retail.v2.ISearchRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.retail.v2.SearchResponse.ISearchResult>;
Equivalent to search
, but returns an iterable object.
for
-await
-of
syntax is used with the iterable to get response elements on-demand.
Name | Description |
request |
protos.google.cloud.retail.v2.ISearchRequest
The request object that will be sent. |
options |
CallOptions
Call options. See CallOptions for more details. |
Type | Description |
AsyncIterable<protos.google.cloud.retail.v2.SearchResponse.ISearchResult> | {Object} An iterable Object that allows [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). 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](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) for more details and examples. |
/**
* TODO(developer): Uncomment these variables before running the sample.
*/
/**
* 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 serving configuration name and the set
* of models that will be 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. See more details at this user
* guide (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. 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.
*/
// 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. See
* more details at this user
* guide (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 100 values are allowed. Otherwise, an INVALID_ARGUMENT error
* is returned.
*/
// const facetSpecs = 1234
/**
* Boost specification to boost certain products. See more details at this
* user guide (https://cloud.google.com/retail/docs/boosting).
* Notice that if both 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 will occur. See more details at this user
* guide (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 = 'abc123'
/**
* 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".
*/
// const pageCategories = 'abc123'
/**
* 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.
*/
// 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.
* See Google Cloud
* Document (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
* for more details.
*/
// const labels = 1234
/**
* The spell correction specification that specifies the mode under
* which spell correction will take effect.
*/
// const spellCorrectionSpec = {}
// 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 = await retailClient.searchAsync(request);
for await (const response of iterable) {
console.log(response);
}
}
callSearch();
searchStream(request, options)
searchStream(request?: protos.google.cloud.retail.v2.ISearchRequest, options?: CallOptions): Transform;
Equivalent to method.name.toCamelCase()
, but returns a NodeJS Stream object.
Name | Description |
request |
protos.google.cloud.retail.v2.ISearchRequest
The request object that will be sent. |
options |
CallOptions
Call options. See CallOptions for more details. |
Type | Description |
Transform | {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 |