@google-cloud/discoveryengine 0.8.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +13 -1
  3. package/build/protos/google/cloud/discoveryengine/v1/common.proto +30 -2
  4. package/build/protos/google/cloud/discoveryengine/v1/completion_service.proto +15 -2
  5. package/build/protos/google/cloud/discoveryengine/v1/conversation.proto +114 -0
  6. package/build/protos/google/cloud/discoveryengine/v1/conversational_search_service.proto +303 -0
  7. package/build/protos/google/cloud/discoveryengine/v1/document.proto +8 -5
  8. package/build/protos/google/cloud/discoveryengine/v1/document_service.proto +4 -3
  9. package/build/protos/google/cloud/discoveryengine/v1/import_config.proto +27 -23
  10. package/build/protos/google/cloud/discoveryengine/v1/schema.proto +1 -1
  11. package/build/protos/google/cloud/discoveryengine/v1/search_service.proto +428 -20
  12. package/build/protos/google/cloud/discoveryengine/v1/user_event.proto +48 -39
  13. package/build/protos/google/cloud/discoveryengine/v1/user_event_service.proto +2 -2
  14. package/build/protos/google/cloud/discoveryengine/v1beta/common.proto +7 -2
  15. package/build/protos/google/cloud/discoveryengine/v1beta/completion_service.proto +13 -2
  16. package/build/protos/google/cloud/discoveryengine/v1beta/conversation.proto +138 -0
  17. package/build/protos/google/cloud/discoveryengine/v1beta/conversational_search_service.proto +306 -0
  18. package/build/protos/google/cloud/discoveryengine/v1beta/document.proto +2 -4
  19. package/build/protos/google/cloud/discoveryengine/v1beta/document_service.proto +2 -1
  20. package/build/protos/google/cloud/discoveryengine/v1beta/import_config.proto +17 -17
  21. package/build/protos/google/cloud/discoveryengine/v1beta/schema.proto +1 -1
  22. package/build/protos/google/cloud/discoveryengine/v1beta/search_service.proto +276 -64
  23. package/build/protos/google/cloud/discoveryengine/v1beta/user_event.proto +45 -36
  24. package/build/protos/google/cloud/discoveryengine/v1beta/user_event_service.proto +2 -2
  25. package/build/protos/protos.d.ts +13913 -8367
  26. package/build/protos/protos.js +36766 -22883
  27. package/build/protos/protos.json +3956 -2571
  28. package/build/src/index.d.ts +4 -1
  29. package/build/src/index.js +4 -1
  30. package/build/src/v1/completion_service_client.d.ts +161 -12
  31. package/build/src/v1/completion_service_client.js +188 -4
  32. package/build/src/v1/conversational_search_service_client.d.ts +947 -0
  33. package/build/src/v1/conversational_search_service_client.js +1205 -0
  34. package/build/src/v1/conversational_search_service_client_config.json +68 -0
  35. package/build/src/v1/document_service_client.d.ts +245 -109
  36. package/build/src/v1/document_service_client.js +231 -31
  37. package/build/src/v1/index.d.ts +1 -0
  38. package/build/src/v1/index.js +3 -1
  39. package/build/src/v1/schema_service_client.d.ts +187 -53
  40. package/build/src/v1/schema_service_client.js +224 -27
  41. package/build/src/v1/search_service_client.d.ts +266 -59
  42. package/build/src/v1/search_service_client.js +267 -41
  43. package/build/src/v1/user_event_service_client.d.ts +159 -19
  44. package/build/src/v1/user_event_service_client.js +208 -7
  45. package/build/src/v1beta/completion_service_client.d.ts +159 -12
  46. package/build/src/v1beta/completion_service_client.js +188 -4
  47. package/build/src/v1beta/conversational_search_service_client.d.ts +947 -0
  48. package/build/src/v1beta/conversational_search_service_client.js +1205 -0
  49. package/build/src/v1beta/conversational_search_service_client_config.json +68 -0
  50. package/build/src/v1beta/document_service_client.d.ts +237 -101
  51. package/build/src/v1beta/document_service_client.js +227 -27
  52. package/build/src/v1beta/index.d.ts +1 -0
  53. package/build/src/v1beta/index.js +3 -1
  54. package/build/src/v1beta/recommendation_service_client.d.ts +158 -15
  55. package/build/src/v1beta/recommendation_service_client.js +188 -4
  56. package/build/src/v1beta/schema_service_client.d.ts +187 -53
  57. package/build/src/v1beta/schema_service_client.js +224 -27
  58. package/build/src/v1beta/search_service_client.d.ts +305 -71
  59. package/build/src/v1beta/search_service_client.js +293 -49
  60. package/build/src/v1beta/user_event_service_client.d.ts +156 -16
  61. package/build/src/v1beta/user_event_service_client.js +208 -7
  62. package/package.json +10 -13
@@ -60,8 +60,7 @@ class SearchServiceClient {
60
60
  * API remote host.
61
61
  * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override.
62
62
  * Follows the structure of {@link gapicConfig}.
63
- * @param {boolean | "rest"} [options.fallback] - Use HTTP fallback mode.
64
- * Pass "rest" to use HTTP/1.1 REST API instead of gRPC.
63
+ * @param {boolean} [options.fallback] - Use HTTP/1.1 REST mode.
65
64
  * For more information, please check the
66
65
  * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}.
67
66
  * @param {gax} [gaxInstance]: loaded instance of `google-gax`. Useful if you
@@ -69,7 +68,7 @@ class SearchServiceClient {
69
68
  * HTTP implementation. Load only fallback version and pass it to the constructor:
70
69
  * ```
71
70
  * const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC
72
- * const client = new SearchServiceClient({fallback: 'rest'}, gax);
71
+ * const client = new SearchServiceClient({fallback: true}, gax);
73
72
  * ```
74
73
  */
75
74
  constructor(opts, gaxInstance) {
@@ -115,6 +114,7 @@ class SearchServiceClient {
115
114
  if (servicePath === staticMembers.servicePath) {
116
115
  this.auth.defaultScopes = staticMembers.scopes;
117
116
  }
117
+ this.locationsClient = new this._gaxModule.LocationsClient(this._gaxGrpc, opts);
118
118
  // Determine the client header string.
119
119
  const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`];
120
120
  if (typeof process !== 'undefined' && 'versions' in process) {
@@ -126,7 +126,7 @@ class SearchServiceClient {
126
126
  if (!opts.fallback) {
127
127
  clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`);
128
128
  }
129
- else if (opts.fallback === 'rest') {
129
+ else {
130
130
  clientHeader.push(`rest/${this._gaxGrpc.grpcVersion}`);
131
131
  }
132
132
  if (opts.libName && opts.libVersion) {
@@ -140,10 +140,12 @@ class SearchServiceClient {
140
140
  this.pathTemplates = {
141
141
  projectLocationCollectionDataStoreBranchPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}'),
142
142
  projectLocationCollectionDataStoreBranchDocumentPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/branches/{branch}/documents/{document}'),
143
+ projectLocationCollectionDataStoreConversationPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/conversations/{conversation}'),
143
144
  projectLocationCollectionDataStoreSchemaPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/schemas/{schema}'),
144
145
  projectLocationCollectionDataStoreServingConfigPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}'),
145
146
  projectLocationDataStoreBranchPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}'),
146
147
  projectLocationDataStoreBranchDocumentPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/dataStores/{data_store}/branches/{branch}/documents/{document}'),
148
+ projectLocationDataStoreConversationPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/dataStores/{data_store}/conversations/{conversation}'),
147
149
  projectLocationDataStoreSchemaPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/dataStores/{data_store}/schemas/{schema}'),
148
150
  projectLocationDataStoreServingConfigPathTemplate: new this._gaxModule.PathTemplate('projects/{project}/locations/{location}/dataStores/{data_store}/servingConfigs/{serving_config}'),
149
151
  };
@@ -283,27 +285,29 @@ class SearchServiceClient {
283
285
  * documents under the default branch.
284
286
  * @param {string} request.query
285
287
  * Raw search query.
288
+ * @param {google.cloud.discoveryengine.v1beta.SearchRequest.ImageQuery} request.imageQuery
289
+ * Raw image query.
286
290
  * @param {number} request.pageSize
287
- * Maximum number of {@link google.cloud.discoveryengine.v1beta.Document|Document}s
291
+ * Maximum number of {@link protos.google.cloud.discoveryengine.v1beta.Document|Document}s
288
292
  * to return. If unspecified, defaults to a reasonable value. The maximum
289
- * allowed value is 100. Values above 100 will be coerced to 100.
293
+ * allowed value is 100. Values above 100 are coerced to 100.
290
294
  *
291
295
  * If this field is negative, an `INVALID_ARGUMENT` is returned.
292
296
  * @param {string} request.pageToken
293
297
  * A page token received from a previous
294
- * {@link google.cloud.discoveryengine.v1beta.SearchService.Search|SearchService.Search}
298
+ * {@link protos.google.cloud.discoveryengine.v1beta.SearchService.Search|SearchService.Search}
295
299
  * call. Provide this to retrieve the subsequent page.
296
300
  *
297
301
  * When paginating, all other parameters provided to
298
- * {@link google.cloud.discoveryengine.v1beta.SearchService.Search|SearchService.Search}
302
+ * {@link protos.google.cloud.discoveryengine.v1beta.SearchService.Search|SearchService.Search}
299
303
  * must match the call that provided the page token. Otherwise, an
300
304
  * `INVALID_ARGUMENT` error is returned.
301
305
  * @param {number} request.offset
302
306
  * A 0-indexed integer that specifies the current offset (that is, starting
303
307
  * result location, amongst the
304
- * {@link google.cloud.discoveryengine.v1beta.Document|Document}s deemed by the API
308
+ * {@link protos.google.cloud.discoveryengine.v1beta.Document|Document}s deemed by the API
305
309
  * as relevant) in search results. This field is only considered if
306
- * {@link google.cloud.discoveryengine.v1beta.SearchRequest.page_token|page_token}
310
+ * {@link protos.google.cloud.discoveryengine.v1beta.SearchRequest.page_token|page_token}
307
311
  * is unset.
308
312
  *
309
313
  * If this field is negative, an `INVALID_ARGUMENT` is returned.
@@ -314,16 +318,17 @@ class SearchServiceClient {
314
318
  *
315
319
  * If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
316
320
  * @param {string} request.orderBy
317
- * The order in which documents are returned. Document can be ordered by
318
- * a field in an {@link google.cloud.discoveryengine.v1beta.Document|Document}
319
- * object. Leave it unset if ordered by relevance. OrderBy expression is
321
+ * The order in which documents are returned. Documents can be ordered by
322
+ * a field in an {@link protos.google.cloud.discoveryengine.v1beta.Document|Document}
323
+ * object. Leave it unset if ordered by relevance. `order_by` expression is
320
324
  * case-sensitive.
321
325
  *
322
- * If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
326
+ * If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
323
327
  * @param {google.cloud.discoveryengine.v1beta.UserInfo} request.userInfo
324
328
  * Information about the end user.
325
- * Highly recommended for analytics. The user_agent string in UserInfo will
326
- * be used to deduce device_type for analytics.
329
+ * Highly recommended for analytics.
330
+ * {@link protos.google.cloud.discoveryengine.v1beta.UserInfo.user_agent|UserInfo.user_agent}
331
+ * is used to deduce `device_type` for analytics.
327
332
  * @param {number[]} request.facetSpecs
328
333
  * Facet specifications for faceted search. If empty, no facets are returned.
329
334
  *
@@ -343,10 +348,10 @@ class SearchServiceClient {
343
348
  * which enables image searching.
344
349
  * @param {google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec} request.queryExpansionSpec
345
350
  * The query expansion specification that specifies the conditions under which
346
- * query expansion will occur.
351
+ * query expansion occurs.
347
352
  * @param {google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec} request.spellCorrectionSpec
348
353
  * The spell correction specification that specifies the mode under
349
- * which spell correction will take effect.
354
+ * which spell correction takes effect.
350
355
  * @param {string} request.userPseudoId
351
356
  * A unique identifier for tracking visitors. For example, this could be
352
357
  * implemented with an HTTP cookie, which should be able to uniquely identify
@@ -356,18 +361,46 @@ class SearchServiceClient {
356
361
  * This field should NOT have a fixed value such as `unknown_visitor`.
357
362
  *
358
363
  * This should be the same identifier as
359
- * {@link google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id|UserEvent.user_pseudo_id}
364
+ * {@link protos.google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id|UserEvent.user_pseudo_id}
360
365
  * and
361
- * {@link google.cloud.discoveryengine.v1beta.CompleteQueryRequest.user_pseudo_id|CompleteQueryRequest.user_pseudo_id}
366
+ * {@link protos.google.cloud.discoveryengine.v1beta.CompleteQueryRequest.user_pseudo_id|CompleteQueryRequest.user_pseudo_id}
362
367
  *
363
368
  * The field must be a UTF-8 encoded string with a length limit of 128
364
369
  * characters. Otherwise, an `INVALID_ARGUMENT` error is returned.
365
370
  * @param {google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec} request.contentSearchSpec
366
- * The content search spec that configs the desired behavior of content
367
- * search.
371
+ * A specification for configuring the behavior of content search.
372
+ * @param {google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec} request.embeddingSpec
373
+ * Uses the provided embedding to do additional semantic document retrieval.
374
+ * The retrieval is based on the dot product of
375
+ * {@link protos.|SearchRequest.embedding_spec.embedding_vectors.vector} and the document
376
+ * embedding that is provided in
377
+ * {@link protos.|SearchRequest.embedding_spec.embedding_vectors.field_path}.
378
+ *
379
+ * If {@link protos.|SearchRequest.embedding_spec.embedding_vectors.field_path} is not
380
+ * provided, it will use {@link protos.|ServingConfig.embedding_config.field_paths}.
381
+ * @param {string} request.rankingExpression
382
+ * The ranking expression controls the customized ranking on retrieval
383
+ * documents. This overrides {@link protos.|ServingConfig.ranking_expression}.
384
+ * The ranking expression is a single function or multiple functions that are
385
+ * joint by "+".
386
+ * * ranking_expression = function, { " + ", function };
387
+ * Supported functions:
388
+ * * double * relevance_score
389
+ * * double * dotProduct(embedding_field_path)
390
+ * Function variables:
391
+ * `relevance_score`: pre-defined keywords, used for measure relevance
392
+ * between query and document.
393
+ * `embedding_field_path`: the document embedding field
394
+ * used with query embedding vector.
395
+ * `dotProduct`: embedding function between embedding_field_path and query
396
+ * embedding vector.
397
+ *
398
+ * Example ranking expression:
399
+ * If document has an embedding field doc_embedding, the ranking expression
400
+ * could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`.
368
401
  * @param {boolean} request.safeSearch
369
402
  * Whether to turn on safe search. This is only supported for
370
- * {@link |ContentConfig.PUBLIC_WEBSITE}.
403
+ * website search.
371
404
  * @param {number[]} request.userLabels
372
405
  * The user labels applied to a resource must meet the following requirements:
373
406
  *
@@ -389,13 +422,12 @@ class SearchServiceClient {
389
422
  * @param {object} [options]
390
423
  * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
391
424
  * @returns {Stream}
392
- * An object stream which emits an object representing {@link google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult | SearchResult} on 'data' event.
425
+ * An object stream which emits an object representing {@link protos.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult|SearchResult} on 'data' event.
393
426
  * The client library will perform auto-pagination by default: it will call the API as many
394
427
  * times as needed. Note that it can affect your quota.
395
428
  * We recommend using `searchAsync()`
396
429
  * method described below for async iteration which you can stop as needed.
397
- * Please see the
398
- * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination)
430
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
399
431
  * for more details and examples.
400
432
  */
401
433
  searchStream(request, options) {
@@ -432,27 +464,29 @@ class SearchServiceClient {
432
464
  * documents under the default branch.
433
465
  * @param {string} request.query
434
466
  * Raw search query.
467
+ * @param {google.cloud.discoveryengine.v1beta.SearchRequest.ImageQuery} request.imageQuery
468
+ * Raw image query.
435
469
  * @param {number} request.pageSize
436
- * Maximum number of {@link google.cloud.discoveryengine.v1beta.Document|Document}s
470
+ * Maximum number of {@link protos.google.cloud.discoveryengine.v1beta.Document|Document}s
437
471
  * to return. If unspecified, defaults to a reasonable value. The maximum
438
- * allowed value is 100. Values above 100 will be coerced to 100.
472
+ * allowed value is 100. Values above 100 are coerced to 100.
439
473
  *
440
474
  * If this field is negative, an `INVALID_ARGUMENT` is returned.
441
475
  * @param {string} request.pageToken
442
476
  * A page token received from a previous
443
- * {@link google.cloud.discoveryengine.v1beta.SearchService.Search|SearchService.Search}
477
+ * {@link protos.google.cloud.discoveryengine.v1beta.SearchService.Search|SearchService.Search}
444
478
  * call. Provide this to retrieve the subsequent page.
445
479
  *
446
480
  * When paginating, all other parameters provided to
447
- * {@link google.cloud.discoveryengine.v1beta.SearchService.Search|SearchService.Search}
481
+ * {@link protos.google.cloud.discoveryengine.v1beta.SearchService.Search|SearchService.Search}
448
482
  * must match the call that provided the page token. Otherwise, an
449
483
  * `INVALID_ARGUMENT` error is returned.
450
484
  * @param {number} request.offset
451
485
  * A 0-indexed integer that specifies the current offset (that is, starting
452
486
  * result location, amongst the
453
- * {@link google.cloud.discoveryengine.v1beta.Document|Document}s deemed by the API
487
+ * {@link protos.google.cloud.discoveryengine.v1beta.Document|Document}s deemed by the API
454
488
  * as relevant) in search results. This field is only considered if
455
- * {@link google.cloud.discoveryengine.v1beta.SearchRequest.page_token|page_token}
489
+ * {@link protos.google.cloud.discoveryengine.v1beta.SearchRequest.page_token|page_token}
456
490
  * is unset.
457
491
  *
458
492
  * If this field is negative, an `INVALID_ARGUMENT` is returned.
@@ -463,16 +497,17 @@ class SearchServiceClient {
463
497
  *
464
498
  * If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
465
499
  * @param {string} request.orderBy
466
- * The order in which documents are returned. Document can be ordered by
467
- * a field in an {@link google.cloud.discoveryengine.v1beta.Document|Document}
468
- * object. Leave it unset if ordered by relevance. OrderBy expression is
500
+ * The order in which documents are returned. Documents can be ordered by
501
+ * a field in an {@link protos.google.cloud.discoveryengine.v1beta.Document|Document}
502
+ * object. Leave it unset if ordered by relevance. `order_by` expression is
469
503
  * case-sensitive.
470
504
  *
471
- * If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
505
+ * If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
472
506
  * @param {google.cloud.discoveryengine.v1beta.UserInfo} request.userInfo
473
507
  * Information about the end user.
474
- * Highly recommended for analytics. The user_agent string in UserInfo will
475
- * be used to deduce device_type for analytics.
508
+ * Highly recommended for analytics.
509
+ * {@link protos.google.cloud.discoveryengine.v1beta.UserInfo.user_agent|UserInfo.user_agent}
510
+ * is used to deduce `device_type` for analytics.
476
511
  * @param {number[]} request.facetSpecs
477
512
  * Facet specifications for faceted search. If empty, no facets are returned.
478
513
  *
@@ -492,10 +527,10 @@ class SearchServiceClient {
492
527
  * which enables image searching.
493
528
  * @param {google.cloud.discoveryengine.v1beta.SearchRequest.QueryExpansionSpec} request.queryExpansionSpec
494
529
  * The query expansion specification that specifies the conditions under which
495
- * query expansion will occur.
530
+ * query expansion occurs.
496
531
  * @param {google.cloud.discoveryengine.v1beta.SearchRequest.SpellCorrectionSpec} request.spellCorrectionSpec
497
532
  * The spell correction specification that specifies the mode under
498
- * which spell correction will take effect.
533
+ * which spell correction takes effect.
499
534
  * @param {string} request.userPseudoId
500
535
  * A unique identifier for tracking visitors. For example, this could be
501
536
  * implemented with an HTTP cookie, which should be able to uniquely identify
@@ -505,18 +540,46 @@ class SearchServiceClient {
505
540
  * This field should NOT have a fixed value such as `unknown_visitor`.
506
541
  *
507
542
  * This should be the same identifier as
508
- * {@link google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id|UserEvent.user_pseudo_id}
543
+ * {@link protos.google.cloud.discoveryengine.v1beta.UserEvent.user_pseudo_id|UserEvent.user_pseudo_id}
509
544
  * and
510
- * {@link google.cloud.discoveryengine.v1beta.CompleteQueryRequest.user_pseudo_id|CompleteQueryRequest.user_pseudo_id}
545
+ * {@link protos.google.cloud.discoveryengine.v1beta.CompleteQueryRequest.user_pseudo_id|CompleteQueryRequest.user_pseudo_id}
511
546
  *
512
547
  * The field must be a UTF-8 encoded string with a length limit of 128
513
548
  * characters. Otherwise, an `INVALID_ARGUMENT` error is returned.
514
549
  * @param {google.cloud.discoveryengine.v1beta.SearchRequest.ContentSearchSpec} request.contentSearchSpec
515
- * The content search spec that configs the desired behavior of content
516
- * search.
550
+ * A specification for configuring the behavior of content search.
551
+ * @param {google.cloud.discoveryengine.v1beta.SearchRequest.EmbeddingSpec} request.embeddingSpec
552
+ * Uses the provided embedding to do additional semantic document retrieval.
553
+ * The retrieval is based on the dot product of
554
+ * {@link protos.|SearchRequest.embedding_spec.embedding_vectors.vector} and the document
555
+ * embedding that is provided in
556
+ * {@link protos.|SearchRequest.embedding_spec.embedding_vectors.field_path}.
557
+ *
558
+ * If {@link protos.|SearchRequest.embedding_spec.embedding_vectors.field_path} is not
559
+ * provided, it will use {@link protos.|ServingConfig.embedding_config.field_paths}.
560
+ * @param {string} request.rankingExpression
561
+ * The ranking expression controls the customized ranking on retrieval
562
+ * documents. This overrides {@link protos.|ServingConfig.ranking_expression}.
563
+ * The ranking expression is a single function or multiple functions that are
564
+ * joint by "+".
565
+ * * ranking_expression = function, { " + ", function };
566
+ * Supported functions:
567
+ * * double * relevance_score
568
+ * * double * dotProduct(embedding_field_path)
569
+ * Function variables:
570
+ * `relevance_score`: pre-defined keywords, used for measure relevance
571
+ * between query and document.
572
+ * `embedding_field_path`: the document embedding field
573
+ * used with query embedding vector.
574
+ * `dotProduct`: embedding function between embedding_field_path and query
575
+ * embedding vector.
576
+ *
577
+ * Example ranking expression:
578
+ * If document has an embedding field doc_embedding, the ranking expression
579
+ * could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`.
517
580
  * @param {boolean} request.safeSearch
518
581
  * Whether to turn on safe search. This is only supported for
519
- * {@link |ContentConfig.PUBLIC_WEBSITE}.
582
+ * website search.
520
583
  * @param {number[]} request.userLabels
521
584
  * The user labels applied to a resource must meet the following requirements:
522
585
  *
@@ -538,12 +601,11 @@ class SearchServiceClient {
538
601
  * @param {object} [options]
539
602
  * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
540
603
  * @returns {Object}
541
- * An iterable Object that allows [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols).
604
+ * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
542
605
  * When you iterate the returned iterable, each element will be an object representing
543
- * {@link google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult | SearchResult}. The API will be called under the hood as needed, once per the page,
606
+ * {@link protos.google.cloud.discoveryengine.v1beta.SearchResponse.SearchResult|SearchResult}. The API will be called under the hood as needed, once per the page,
544
607
  * so you can stop the iteration when you don't need more results.
545
- * Please see the
546
- * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination)
608
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
547
609
  * for more details and examples.
548
610
  * @example <caption>include:samples/generated/v1beta/search_service.search.js</caption>
549
611
  * region_tag:discoveryengine_v1beta_generated_SearchService_Search_async
@@ -563,6 +625,61 @@ class SearchServiceClient {
563
625
  this.initialize();
564
626
  return this.descriptors.page.search.asyncIterate(this.innerApiCalls['search'], request, callSettings);
565
627
  }
628
+ /**
629
+ * Gets information about a location.
630
+ *
631
+ * @param {Object} request
632
+ * The request object that will be sent.
633
+ * @param {string} request.name
634
+ * Resource name for the location.
635
+ * @param {object} [options]
636
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html | CallOptions} for more details.
637
+ * @returns {Promise} - The promise which resolves to an array.
638
+ * The first element of the array is an object representing {@link google.cloud.location.Location | Location}.
639
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
640
+ * for more details and examples.
641
+ * @example
642
+ * ```
643
+ * const [response] = await client.getLocation(request);
644
+ * ```
645
+ */
646
+ getLocation(request, options, callback) {
647
+ return this.locationsClient.getLocation(request, options, callback);
648
+ }
649
+ /**
650
+ * Lists information about the supported locations for this service. Returns an iterable object.
651
+ *
652
+ * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
653
+ * @param {Object} request
654
+ * The request object that will be sent.
655
+ * @param {string} request.name
656
+ * The resource that owns the locations collection, if applicable.
657
+ * @param {string} request.filter
658
+ * The standard list filter.
659
+ * @param {number} request.pageSize
660
+ * The standard list page size.
661
+ * @param {string} request.pageToken
662
+ * The standard list page token.
663
+ * @param {object} [options]
664
+ * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
665
+ * @returns {Object}
666
+ * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
667
+ * When you iterate the returned iterable, each element will be an object representing
668
+ * {@link google.cloud.location.Location | Location}. The API will be called under the hood as needed, once per the page,
669
+ * so you can stop the iteration when you don't need more results.
670
+ * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
671
+ * for more details and examples.
672
+ * @example
673
+ * ```
674
+ * const iterable = client.listLocationsAsync(request);
675
+ * for await (const response of iterable) {
676
+ * // process response
677
+ * }
678
+ * ```
679
+ */
680
+ listLocationsAsync(request, options) {
681
+ return this.locationsClient.listLocationsAsync(request, options);
682
+ }
566
683
  // --------------------
567
684
  // -- Path templates --
568
685
  // --------------------
@@ -716,6 +833,75 @@ class SearchServiceClient {
716
833
  matchDocumentFromProjectLocationCollectionDataStoreBranchDocumentName(projectLocationCollectionDataStoreBranchDocumentName) {
717
834
  return this.pathTemplates.projectLocationCollectionDataStoreBranchDocumentPathTemplate.match(projectLocationCollectionDataStoreBranchDocumentName).document;
718
835
  }
836
+ /**
837
+ * Return a fully-qualified projectLocationCollectionDataStoreConversation resource name string.
838
+ *
839
+ * @param {string} project
840
+ * @param {string} location
841
+ * @param {string} collection
842
+ * @param {string} data_store
843
+ * @param {string} conversation
844
+ * @returns {string} Resource name string.
845
+ */
846
+ projectLocationCollectionDataStoreConversationPath(project, location, collection, dataStore, conversation) {
847
+ return this.pathTemplates.projectLocationCollectionDataStoreConversationPathTemplate.render({
848
+ project: project,
849
+ location: location,
850
+ collection: collection,
851
+ data_store: dataStore,
852
+ conversation: conversation,
853
+ });
854
+ }
855
+ /**
856
+ * Parse the project from ProjectLocationCollectionDataStoreConversation resource.
857
+ *
858
+ * @param {string} projectLocationCollectionDataStoreConversationName
859
+ * A fully-qualified path representing project_location_collection_data_store_conversation resource.
860
+ * @returns {string} A string representing the project.
861
+ */
862
+ matchProjectFromProjectLocationCollectionDataStoreConversationName(projectLocationCollectionDataStoreConversationName) {
863
+ return this.pathTemplates.projectLocationCollectionDataStoreConversationPathTemplate.match(projectLocationCollectionDataStoreConversationName).project;
864
+ }
865
+ /**
866
+ * Parse the location from ProjectLocationCollectionDataStoreConversation resource.
867
+ *
868
+ * @param {string} projectLocationCollectionDataStoreConversationName
869
+ * A fully-qualified path representing project_location_collection_data_store_conversation resource.
870
+ * @returns {string} A string representing the location.
871
+ */
872
+ matchLocationFromProjectLocationCollectionDataStoreConversationName(projectLocationCollectionDataStoreConversationName) {
873
+ return this.pathTemplates.projectLocationCollectionDataStoreConversationPathTemplate.match(projectLocationCollectionDataStoreConversationName).location;
874
+ }
875
+ /**
876
+ * Parse the collection from ProjectLocationCollectionDataStoreConversation resource.
877
+ *
878
+ * @param {string} projectLocationCollectionDataStoreConversationName
879
+ * A fully-qualified path representing project_location_collection_data_store_conversation resource.
880
+ * @returns {string} A string representing the collection.
881
+ */
882
+ matchCollectionFromProjectLocationCollectionDataStoreConversationName(projectLocationCollectionDataStoreConversationName) {
883
+ return this.pathTemplates.projectLocationCollectionDataStoreConversationPathTemplate.match(projectLocationCollectionDataStoreConversationName).collection;
884
+ }
885
+ /**
886
+ * Parse the data_store from ProjectLocationCollectionDataStoreConversation resource.
887
+ *
888
+ * @param {string} projectLocationCollectionDataStoreConversationName
889
+ * A fully-qualified path representing project_location_collection_data_store_conversation resource.
890
+ * @returns {string} A string representing the data_store.
891
+ */
892
+ matchDataStoreFromProjectLocationCollectionDataStoreConversationName(projectLocationCollectionDataStoreConversationName) {
893
+ return this.pathTemplates.projectLocationCollectionDataStoreConversationPathTemplate.match(projectLocationCollectionDataStoreConversationName).data_store;
894
+ }
895
+ /**
896
+ * Parse the conversation from ProjectLocationCollectionDataStoreConversation resource.
897
+ *
898
+ * @param {string} projectLocationCollectionDataStoreConversationName
899
+ * A fully-qualified path representing project_location_collection_data_store_conversation resource.
900
+ * @returns {string} A string representing the conversation.
901
+ */
902
+ matchConversationFromProjectLocationCollectionDataStoreConversationName(projectLocationCollectionDataStoreConversationName) {
903
+ return this.pathTemplates.projectLocationCollectionDataStoreConversationPathTemplate.match(projectLocationCollectionDataStoreConversationName).conversation;
904
+ }
719
905
  /**
720
906
  * Return a fully-qualified projectLocationCollectionDataStoreSchema resource name string.
721
907
  *
@@ -980,6 +1166,63 @@ class SearchServiceClient {
980
1166
  matchDocumentFromProjectLocationDataStoreBranchDocumentName(projectLocationDataStoreBranchDocumentName) {
981
1167
  return this.pathTemplates.projectLocationDataStoreBranchDocumentPathTemplate.match(projectLocationDataStoreBranchDocumentName).document;
982
1168
  }
1169
+ /**
1170
+ * Return a fully-qualified projectLocationDataStoreConversation resource name string.
1171
+ *
1172
+ * @param {string} project
1173
+ * @param {string} location
1174
+ * @param {string} data_store
1175
+ * @param {string} conversation
1176
+ * @returns {string} Resource name string.
1177
+ */
1178
+ projectLocationDataStoreConversationPath(project, location, dataStore, conversation) {
1179
+ return this.pathTemplates.projectLocationDataStoreConversationPathTemplate.render({
1180
+ project: project,
1181
+ location: location,
1182
+ data_store: dataStore,
1183
+ conversation: conversation,
1184
+ });
1185
+ }
1186
+ /**
1187
+ * Parse the project from ProjectLocationDataStoreConversation resource.
1188
+ *
1189
+ * @param {string} projectLocationDataStoreConversationName
1190
+ * A fully-qualified path representing project_location_data_store_conversation resource.
1191
+ * @returns {string} A string representing the project.
1192
+ */
1193
+ matchProjectFromProjectLocationDataStoreConversationName(projectLocationDataStoreConversationName) {
1194
+ return this.pathTemplates.projectLocationDataStoreConversationPathTemplate.match(projectLocationDataStoreConversationName).project;
1195
+ }
1196
+ /**
1197
+ * Parse the location from ProjectLocationDataStoreConversation resource.
1198
+ *
1199
+ * @param {string} projectLocationDataStoreConversationName
1200
+ * A fully-qualified path representing project_location_data_store_conversation resource.
1201
+ * @returns {string} A string representing the location.
1202
+ */
1203
+ matchLocationFromProjectLocationDataStoreConversationName(projectLocationDataStoreConversationName) {
1204
+ return this.pathTemplates.projectLocationDataStoreConversationPathTemplate.match(projectLocationDataStoreConversationName).location;
1205
+ }
1206
+ /**
1207
+ * Parse the data_store from ProjectLocationDataStoreConversation resource.
1208
+ *
1209
+ * @param {string} projectLocationDataStoreConversationName
1210
+ * A fully-qualified path representing project_location_data_store_conversation resource.
1211
+ * @returns {string} A string representing the data_store.
1212
+ */
1213
+ matchDataStoreFromProjectLocationDataStoreConversationName(projectLocationDataStoreConversationName) {
1214
+ return this.pathTemplates.projectLocationDataStoreConversationPathTemplate.match(projectLocationDataStoreConversationName).data_store;
1215
+ }
1216
+ /**
1217
+ * Parse the conversation from ProjectLocationDataStoreConversation resource.
1218
+ *
1219
+ * @param {string} projectLocationDataStoreConversationName
1220
+ * A fully-qualified path representing project_location_data_store_conversation resource.
1221
+ * @returns {string} A string representing the conversation.
1222
+ */
1223
+ matchConversationFromProjectLocationDataStoreConversationName(projectLocationDataStoreConversationName) {
1224
+ return this.pathTemplates.projectLocationDataStoreConversationPathTemplate.match(projectLocationDataStoreConversationName).conversation;
1225
+ }
983
1226
  /**
984
1227
  * Return a fully-qualified projectLocationDataStoreSchema resource name string.
985
1228
  *
@@ -1105,6 +1348,7 @@ class SearchServiceClient {
1105
1348
  return this.searchServiceStub.then(stub => {
1106
1349
  this._terminated = true;
1107
1350
  stub.close();
1351
+ this.locationsClient.close();
1108
1352
  });
1109
1353
  }
1110
1354
  return Promise.resolve();