completeQuery method

Future<GoogleCloudRetailV2CompleteQueryResponse> completeQuery(
  1. String catalog, {
  2. String? dataset,
  3. String? deviceType,
  4. bool? enableAttributeSuggestions,
  5. String? entity,
  6. List<String>? languageCodes,
  7. int? maxSuggestions,
  8. String? query,
  9. String? visitorId,
  10. String? $fields,
})

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.

enableAttributeSuggestions - If true, attribute suggestions are enabled and provided in the response. This field is only available for the "cloud-retail" dataset.

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.bool? enableAttributeSuggestions,
  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 (enableAttributeSuggestions != null)
      'enableAttributeSuggestions': ['${enableAttributeSuggestions}'],
    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>);
}