completeQuery method
Completes the specified prefix with keyword suggestions.
This feature is only available for users who have Retail Search enabled. Enable Retail Search on Cloud Console before using this feature.
Request parameters:
catalog
- Required. Catalog for which the completion is performed. Full
resource name of catalog, such as projects / * /locations/global/catalogs/default_catalog
.
Value must have pattern
^projects/\[^/\]+/locations/\[^/\]+/catalogs/\[^/\]+$
.
dataset
- Determines which dataset to use for fetching completion.
"user-data" will use the imported dataset through
CompletionService.ImportCompletionData. "cloud-retail" will use the
dataset generated by cloud retail based on user events. If leave empty, it
will use the "user-data". Current supported values: * user-data *
cloud-retail: This option requires enabling auto-learning function first.
See
guidelines.
deviceType
- The device type context for completion suggestions. We
recommend that you leave this field empty. It can apply different
suggestions on different device types, e.g. DESKTOP
, MOBILE
. If it is
empty, the suggestions are across all device types. Supported formats: *
UNKNOWN_DEVICE_TYPE
* DESKTOP
* MOBILE
* A customized string starts
with OTHER_
, e.g. OTHER_IPHONE
.
entity
- The entity for customers who run multiple entities, domains,
sites, or regions, for example, Google US
, Google Ads
, Waymo
,
google.com
, youtube.com
, etc. If this is set, it must be an exact
match with UserEvent.entity to get per-entity autocomplete results.
languageCodes
- Note that this field applies for user-data
dataset
only. For requests with cloud-retail
dataset, setting this field has no
effect. The language filters applied to the output suggestions. If set, it
should contain the language of the query. If not set, suggestions are
returned without considering language restrictions. This is the BCP-47
language code, such as "en-US" or "sr-Latn". For more information, see
Tags for Identifying Languages. The
maximum number of language codes is 3.
maxSuggestions
- Completion max suggestions. If left unset or set to 0,
then will fallback to the configured value
CompletionConfig.max_suggestions. The maximum allowed max suggestions is
20. If it is set higher, it will be capped by 20.
query
- Required. The query used to generate suggestions. The maximum
number of allowed characters is 255.
visitorId
- Required field. 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.
The field must be a UTF-8 encoded string with a length limit of 128
characters. Otherwise, an INVALID_ARGUMENT error is returned.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a GoogleCloudRetailV2CompleteQueryResponse.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<GoogleCloudRetailV2CompleteQueryResponse> completeQuery(
core.String catalog, {
core.String? dataset,
core.String? deviceType,
core.String? entity,
core.List<core.String>? languageCodes,
core.int? maxSuggestions,
core.String? query,
core.String? visitorId,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
if (dataset != null) 'dataset': [dataset],
if (deviceType != null) 'deviceType': [deviceType],
if (entity != null) 'entity': [entity],
if (languageCodes != null) 'languageCodes': languageCodes,
if (maxSuggestions != null) 'maxSuggestions': ['${maxSuggestions}'],
if (query != null) 'query': [query],
if (visitorId != null) 'visitorId': [visitorId],
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v2/' + core.Uri.encodeFull('$catalog') + ':completeQuery';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudRetailV2CompleteQueryResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>);
}