google-cloud-vector_search-v1 0.5.0 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f0bb410414441ab4ccfeb7bcd56977ceb45bf6b58b2298b2781c76506730e46
4
- data.tar.gz: d1ab3d38eec4cc7635cfb9274696aff979425f6f3ad5493f2fbe84eb147a42a4
3
+ metadata.gz: ab7f360bdb13fd340817f389af8acadbdd48332d8ad246eb018b0b1dce02c585
4
+ data.tar.gz: b1a935f377e334734a782d21da99216bda3a889a919bbba8f06ff6b5691c330e
5
5
  SHA512:
6
- metadata.gz: 48f7a82c8bf3ff639a5cc8ac7d0b7319b916a2350e7ab7179a5e12299a77e90aa7850be242b74538fee3c7cb64c80f300bf0c239f688c39749976c5ef80078fa
7
- data.tar.gz: 0fa94384dcfa934b0a6642b789517c46da8e9e2db5fd95ae20936995ddc231cd9a08483099f87b41cfe29db2493c642b75a150248f407c1b62680f99af21fa7b
6
+ metadata.gz: a915e6a734b67e0a3892633c6327bebfdaf4b570c47035e048b224ee0e20a2a56bfe689786049523b58c0a77dd086a4be60d4224f3d6a2a10728d2d022231315
7
+ data.tar.gz: 9e360af7d2c0021cb26c7dfcc37dd9e9dead5de1f9c668c7f099fa31b2bb1f0c773b665c0c13133e8b6bb33011921d3dba941390777c425b86aa9c64b2ebe880
@@ -356,8 +356,22 @@ module Google
356
356
  # Required. The resource name of the Collection for which to query.
357
357
  # Format: `projects/{project}/locations/{location}/collections/{collection}`
358
358
  # @param filter [::Google::Protobuf::Struct, ::Hash]
359
- # Optional. A JSON filter expression, e.g. \\{"genre": \\{"$eq": "sci-fi"}},
360
- # represented as a google.protobuf.Struct.
359
+ # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
360
+ # represented as a `google.protobuf.Struct`.
361
+ #
362
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
363
+ # object in the filter must have exactly one key: either a field name mapped
364
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
365
+ # or `$or` with a list of filters, or `$not` with one filter. Field
366
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
367
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
368
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
369
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
370
+ # use `$and` and `$eq` instead.
371
+ #
372
+ # Logical operators can be nested at most 2 levels deep, e.g.
373
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
374
+ # filters are rejected with `INVALID_ARGUMENT`.
361
375
  # @param output_fields [::Google::Cloud::VectorSearch::V1::OutputFields, ::Hash]
362
376
  # Optional. Mask specifying which fields to return.
363
377
  # @param page_size [::Integer]
@@ -463,8 +477,22 @@ module Google
463
477
  # Required. The resource name of the Collection for which to query.
464
478
  # Format: `projects/{project}/locations/{location}/collections/{collection}`
465
479
  # @param filter [::Google::Protobuf::Struct, ::Hash]
466
- # Optional. A JSON filter expression, e.g. \\{"genre": \\{"$eq": "sci-fi"}},
467
- # represented as a google.protobuf.Struct.
480
+ # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
481
+ # represented as a `google.protobuf.Struct`.
482
+ #
483
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
484
+ # object in the filter must have exactly one key: either a field name mapped
485
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
486
+ # or `$or` with a list of filters, or `$not` with one filter. Field
487
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
488
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
489
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
490
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
491
+ # use `$and` and `$eq` instead.
492
+ #
493
+ # Logical operators can be nested at most 2 levels deep, e.g.
494
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
495
+ # filters are rejected with `INVALID_ARGUMENT`.
468
496
  # @param aggregate [::Google::Cloud::VectorSearch::V1::AggregationMethod]
469
497
  # Required. The aggregation method to apply to the query.
470
498
  #
@@ -26,7 +26,9 @@ module Google
26
26
  # Credentials for the DataObjectSearchService API.
27
27
  class Credentials < ::Google::Auth::Credentials
28
28
  self.scope = [
29
- "https://www.googleapis.com/auth/cloud-platform"
29
+ "https://www.googleapis.com/auth/cloud-platform",
30
+ "https://www.googleapis.com/auth/vectorsearch",
31
+ "https://www.googleapis.com/auth/vectorsearch.readonly"
30
32
  ]
31
33
  self.env_vars = [
32
34
  "GOOGLE_CLOUD_CREDENTIALS",
@@ -343,8 +343,22 @@ module Google
343
343
  # Required. The resource name of the Collection for which to query.
344
344
  # Format: `projects/{project}/locations/{location}/collections/{collection}`
345
345
  # @param filter [::Google::Protobuf::Struct, ::Hash]
346
- # Optional. A JSON filter expression, e.g. \\{"genre": \\{"$eq": "sci-fi"}},
347
- # represented as a google.protobuf.Struct.
346
+ # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
347
+ # represented as a `google.protobuf.Struct`.
348
+ #
349
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
350
+ # object in the filter must have exactly one key: either a field name mapped
351
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
352
+ # or `$or` with a list of filters, or `$not` with one filter. Field
353
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
354
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
355
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
356
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
357
+ # use `$and` and `$eq` instead.
358
+ #
359
+ # Logical operators can be nested at most 2 levels deep, e.g.
360
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
361
+ # filters are rejected with `INVALID_ARGUMENT`.
348
362
  # @param output_fields [::Google::Cloud::VectorSearch::V1::OutputFields, ::Hash]
349
363
  # Optional. Mask specifying which fields to return.
350
364
  # @param page_size [::Integer]
@@ -443,8 +457,22 @@ module Google
443
457
  # Required. The resource name of the Collection for which to query.
444
458
  # Format: `projects/{project}/locations/{location}/collections/{collection}`
445
459
  # @param filter [::Google::Protobuf::Struct, ::Hash]
446
- # Optional. A JSON filter expression, e.g. \\{"genre": \\{"$eq": "sci-fi"}},
447
- # represented as a google.protobuf.Struct.
460
+ # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
461
+ # represented as a `google.protobuf.Struct`.
462
+ #
463
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
464
+ # object in the filter must have exactly one key: either a field name mapped
465
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
466
+ # or `$or` with a list of filters, or `$not` with one filter. Field
467
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
468
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
469
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
470
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
471
+ # use `$and` and `$eq` instead.
472
+ #
473
+ # Logical operators can be nested at most 2 levels deep, e.g.
474
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
475
+ # filters are rejected with `INVALID_ARGUMENT`.
448
476
  # @param aggregate [::Google::Cloud::VectorSearch::V1::AggregationMethod]
449
477
  # Required. The aggregation method to apply to the query.
450
478
  # @yield [result, operation] Access the result along with the TransportOperation object
@@ -26,7 +26,9 @@ module Google
26
26
  # Credentials for the DataObjectService API.
27
27
  class Credentials < ::Google::Auth::Credentials
28
28
  self.scope = [
29
- "https://www.googleapis.com/auth/cloud-platform"
29
+ "https://www.googleapis.com/auth/cloud-platform",
30
+ "https://www.googleapis.com/auth/vectorsearch",
31
+ "https://www.googleapis.com/auth/vectorsearch.readonly"
30
32
  ]
31
33
  self.env_vars = [
32
34
  "GOOGLE_CLOUD_CREDENTIALS",
@@ -26,7 +26,9 @@ module Google
26
26
  # Credentials for the VectorSearchService API.
27
27
  class Credentials < ::Google::Auth::Credentials
28
28
  self.scope = [
29
- "https://www.googleapis.com/auth/cloud-platform"
29
+ "https://www.googleapis.com/auth/cloud-platform",
30
+ "https://www.googleapis.com/auth/vectorsearch",
31
+ "https://www.googleapis.com/auth/vectorsearch.readonly"
30
32
  ]
31
33
  self.env_vars = [
32
34
  "GOOGLE_CLOUD_CREDENTIALS",
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module VectorSearch
23
23
  module V1
24
- VERSION = "0.5.0"
24
+ VERSION = "0.6.0"
25
25
  end
26
26
  end
27
27
  end
@@ -4,8 +4,10 @@
4
4
 
5
5
  require 'google/protobuf'
6
6
 
7
+ require 'google/api/field_behavior_pb'
7
8
 
8
- descriptor_data = "\n)google/cloud/vectorsearch/v1/common.proto\x12\x1cgoogle.cloud.vectorsearch.v1*W\n\x0e\x44istanceMetric\x12\x1f\n\x1b\x44ISTANCE_METRIC_UNSPECIFIED\x10\x00\x12\x0f\n\x0b\x44OT_PRODUCT\x10\x01\x12\x13\n\x0f\x43OSINE_DISTANCE\x10\x02\x42\xd7\x01\n com.google.cloud.vectorsearch.v1B\x0b\x43ommonProtoP\x01ZDcloud.google.com/go/vectorsearch/apiv1/vectorsearchpb;vectorsearchpb\xaa\x02\x1cGoogle.Cloud.VectorSearch.V1\xca\x02\x1cGoogle\\Cloud\\VectorSearch\\V1\xea\x02\x1fGoogle::Cloud::VectorSearch::V1b\x06proto3"
9
+
10
+ descriptor_data = "\n)google/cloud/vectorsearch/v1/common.proto\x12\x1cgoogle.cloud.vectorsearch.v1\x1a\x1fgoogle/api/field_behavior.proto*W\n\x0e\x44istanceMetric\x12\x1f\n\x1b\x44ISTANCE_METRIC_UNSPECIFIED\x10\x00\x12\x0f\n\x0b\x44OT_PRODUCT\x10\x01\x12\x13\n\x0f\x43OSINE_DISTANCE\x10\x02\x42\xd7\x01\n com.google.cloud.vectorsearch.v1B\x0b\x43ommonProtoP\x01ZDcloud.google.com/go/vectorsearch/apiv1/vectorsearchpb;vectorsearchpb\xaa\x02\x1cGoogle.Cloud.VectorSearch.V1\xca\x02\x1cGoogle\\Cloud\\VectorSearch\\V1\xea\x02\x1fGoogle::Cloud::VectorSearch::V1b\x06proto3"
9
11
 
10
12
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
11
13
  pool.add_serialized_file(descriptor_data)
@@ -14,7 +14,7 @@ require 'google/cloud/vectorsearch/v1/embedding_config_pb'
14
14
  require 'google/protobuf/struct_pb'
15
15
 
16
16
 
17
- descriptor_data = "\n=google/cloud/vectorsearch/v1/data_object_search_service.proto\x12\x1cgoogle.cloud.vectorsearch.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a)google/cloud/vectorsearch/v1/common.proto\x1a.google/cloud/vectorsearch/v1/data_object.proto\x1a\x33google/cloud/vectorsearch/v1/embedding_config.proto\x1a\x1cgoogle/protobuf/struct.proto\"e\n\x0cOutputFields\x12\x19\n\x0b\x64\x61ta_fields\x18\x01 \x03(\tB\x04\xe2\x41\x01\x01\x12\x1b\n\rvector_fields\x18\x02 \x03(\tB\x04\xe2\x41\x01\x01\x12\x1d\n\x0fmetadata_fields\x18\x03 \x03(\tB\x04\xe2\x41\x01\x01\"\xc4\x03\n\nSearchHint\x12J\n\x08knn_hint\x18\x03 \x01(\x0b\x32\x30.google.cloud.vectorsearch.v1.SearchHint.KnnHintB\x04\xe2\x41\x01\x01H\x00\x12N\n\nindex_hint\x18\x04 \x01(\x0b\x32\x32.google.cloud.vectorsearch.v1.SearchHint.IndexHintB\x04\xe2\x41\x01\x01H\x00\x1a\x80\x02\n\tIndexHint\x12g\n\x12\x64\x65nse_scann_params\x18\x02 \x01(\x0b\x32\x43.google.cloud.vectorsearch.v1.SearchHint.IndexHint.DenseScannParamsB\x04\xe2\x41\x01\x01H\x00\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!vectorsearch.googleapis.com/Index\x1a\x46\n\x10\x44\x65nseScannParams\x12 \n\rtarget_recall\x18\x03 \x01(\x01\x42\x04\xe2\x41\x01\x01H\x00\x88\x01\x01\x42\x10\n\x0e_target_recallB\x08\n\x06params\x1a\t\n\x07KnnHintB\x0c\n\nindex_type\"\xe6\x01\n\x06Search\x12\x43\n\rvector_search\x18\x01 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.VectorSearchH\x00\x12G\n\x0fsemantic_search\x18\x02 \x01(\x0b\x32,.google.cloud.vectorsearch.v1.SemanticSearchH\x00\x12?\n\x0btext_search\x18\x03 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.TextSearchH\x00\x42\r\n\x0bsearch_type\"\xe9\x03\n\x0cVectorSearch\x12;\n\x06vector\x18\x01 \x01(\x0b\x32).google.cloud.vectorsearch.v1.DenseVectorH\x00\x12\x43\n\rsparse_vector\x18\x02 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.SparseVectorH\x00\x12\x1a\n\x0csearch_field\x18\x08 \x01(\tB\x04\xe2\x41\x01\x02\x12-\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12\x18\n\x05top_k\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x01H\x01\x88\x01\x01\x12G\n\routput_fields\x18\x07 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12\x43\n\x0bsearch_hint\x18\t \x01(\x0b\x32(.google.cloud.vectorsearch.v1.SearchHintB\x04\xe2\x41\x01\x01\x12K\n\x0f\x64istance_metric\x18\x0b \x01(\x0e\x32,.google.cloud.vectorsearch.v1.DistanceMetricB\x04\xe2\x41\x01\x01\x42\r\n\x0bvector_typeB\x08\n\x06_top_k\"\xf2\x02\n\x0eSemanticSearch\x12\x19\n\x0bsearch_text\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01\x12\x1a\n\x0csearch_field\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12H\n\ttask_type\x18\x05 \x01(\x0e\x32/.google.cloud.vectorsearch.v1.EmbeddingTaskTypeB\x04\xe2\x41\x01\x01\x12G\n\routput_fields\x18\x03 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12-\n\x06\x66ilter\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12\x18\n\x05top_k\x18\x04 \x01(\x05\x42\x04\xe2\x41\x01\x01H\x00\x88\x01\x01\x12\x43\n\x0bsearch_hint\x18\x07 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.SearchHintB\x04\xe2\x41\x01\x01\x42\x08\n\x06_top_k\"\xe3\x01\n\nTextSearch\x12\x19\n\x0bsearch_text\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01\x12\x1e\n\x10\x64\x61ta_field_names\x18\x02 \x03(\tB\x04\xe2\x41\x01\x01\x12G\n\routput_fields\x18\x03 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12\x18\n\x05top_k\x18\x04 \x01(\x05\x42\x04\xe2\x41\x01\x01H\x00\x88\x01\x01\x12-\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x42\x08\n\x06_top_k\"\xf2\x02\n\x18SearchDataObjectsRequest\x12\x43\n\rvector_search\x18\x02 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.VectorSearchH\x00\x12G\n\x0fsemantic_search\x18\x04 \x01(\x0b\x32,.google.cloud.vectorsearch.v1.SemanticSearchH\x00\x12\x45\n\x0btext_search\x18\x07 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.TextSearchB\x04\xe2\x41\x01\x01H\x00\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12\x17\n\tpage_size\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x18\n\npage_token\x18\x06 \x01(\tB\x04\xe2\x41\x01\x01\x42\r\n\x0bsearch_type\"}\n\x0cSearchResult\x12\x43\n\x0b\x64\x61ta_object\x18\x01 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x03\x12\x1b\n\x08\x64istance\x18\x02 \x01(\x01\x42\x04\xe2\x41\x01\x03H\x00\x88\x01\x01\x42\x0b\n\t_distance\"}\n\x19SearchDataObjectsResponse\x12\x41\n\x07results\x18\x01 \x03(\x0b\x32*.google.cloud.vectorsearch.v1.SearchResultB\x04\xe2\x41\x01\x03\x12\x1d\n\x0fnext_page_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x03\"\xd7\x01\n\x1b\x41ggregateDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12-\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12H\n\taggregate\x18\x03 \x01(\x0e\x32/.google.cloud.vectorsearch.v1.AggregationMethodB\x04\xe2\x41\x01\x02\"X\n\x1c\x41ggregateDataObjectsResponse\x12\x38\n\x11\x61ggregate_results\x18\x01 \x03(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x03\"\x85\x02\n\x17QueryDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12-\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12G\n\routput_fields\x18\x07 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12\x17\n\tpage_size\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x18\n\npage_token\x18\x06 \x01(\tB\x04\xe2\x41\x01\x01\"\x7f\n\x18QueryDataObjectsResponse\x12\x44\n\x0c\x64\x61ta_objects\x18\x04 \x03(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x03\x12\x1d\n\x0fnext_page_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x03\"\xbc\x03\n\x1d\x42\x61tchSearchDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12<\n\x08searches\x18\x02 \x03(\x0b\x32$.google.cloud.vectorsearch.v1.SearchB\x04\xe2\x41\x01\x02\x12h\n\x07\x63ombine\x18\x03 \x01(\x0b\x32Q.google.cloud.vectorsearch.v1.BatchSearchDataObjectsRequest.CombineResultsOptionsB\x04\xe2\x41\x01\x01\x1a\xb1\x01\n\x15\x43ombineResultsOptions\x12:\n\x06ranker\x18\x01 \x01(\x0b\x32$.google.cloud.vectorsearch.v1.RankerB\x04\xe2\x41\x01\x02\x12G\n\routput_fields\x18\x02 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12\x13\n\x05top_k\x18\x03 \x01(\x05\x42\x04\xe2\x41\x01\x01\"\xac\x01\n\x06Ranker\x12\x41\n\x03rrf\x18\x01 \x01(\x0b\x32\x32.google.cloud.vectorsearch.v1.ReciprocalRankFusionH\x00\x12I\n\rvertex_ranker\x18\x02 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.VertexRankerB\x04\xe2\x41\x01\x01H\x01\x42\x08\n\x06rankerB\n\n\x08reranker\"-\n\x14ReciprocalRankFusion\x12\x15\n\x07weights\x18\x01 \x03(\x01\x42\x04\xe2\x41\x01\x02\"\x83\x02\n\x0cVertexRanker\x12U\n\x10text_record_spec\x18\x06 \x01(\x0b\x32\x39.google.cloud.vectorsearch.v1.VertexRanker.TextRecordSpecH\x00\x12\x13\n\x05model\x18\x04 \x01(\tB\x04\xe2\x41\x01\x02\x12\x13\n\x05top_n\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x02\x1a\x63\n\x0eTextRecordSpec\x12\x13\n\x05query\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02\x12\x1c\n\x0etitle_template\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01\x12\x1e\n\x10\x63ontent_template\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01\x42\r\n\x0brecord_spec\"p\n\x1e\x42\x61tchSearchDataObjectsResponse\x12N\n\x07results\x18\x01 \x03(\x0b\x32\x37.google.cloud.vectorsearch.v1.SearchDataObjectsResponseB\x04\xe2\x41\x01\x03*B\n\x11\x41ggregationMethod\x12\"\n\x1e\x41GGREGATION_METHOD_UNSPECIFIED\x10\x00\x12\t\n\x05\x43OUNT\x10\x01\x32\xe6\x07\n\x17\x44\x61taObjectSearchService\x12\xd5\x01\n\x11SearchDataObjects\x12\x36.google.cloud.vectorsearch.v1.SearchDataObjectsRequest\x1a\x37.google.cloud.vectorsearch.v1.SearchDataObjectsResponse\"O\x82\xd3\xe4\x93\x02I\"D/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:search:\x01*\x12\xd1\x01\n\x10QueryDataObjects\x12\x35.google.cloud.vectorsearch.v1.QueryDataObjectsRequest\x1a\x36.google.cloud.vectorsearch.v1.QueryDataObjectsResponse\"N\x82\xd3\xe4\x93\x02H\"C/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:query:\x01*\x12\xe1\x01\n\x14\x41ggregateDataObjects\x12\x39.google.cloud.vectorsearch.v1.AggregateDataObjectsRequest\x1a:.google.cloud.vectorsearch.v1.AggregateDataObjectsResponse\"R\x82\xd3\xe4\x93\x02L\"G/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:aggregate:\x01*\x12\xe9\x01\n\x16\x42\x61tchSearchDataObjects\x12;.google.cloud.vectorsearch.v1.BatchSearchDataObjectsRequest\x1a<.google.cloud.vectorsearch.v1.BatchSearchDataObjectsResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:batchSearch:\x01*\x1aO\xca\x41\x1bvectorsearch.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xe8\x01\n com.google.cloud.vectorsearch.v1B\x1c\x44\x61taObjectSearchServiceProtoP\x01ZDcloud.google.com/go/vectorsearch/apiv1/vectorsearchpb;vectorsearchpb\xaa\x02\x1cGoogle.Cloud.VectorSearch.V1\xca\x02\x1cGoogle\\Cloud\\VectorSearch\\V1\xea\x02\x1fGoogle::Cloud::VectorSearch::V1b\x06proto3"
17
+ descriptor_data = "\n=google/cloud/vectorsearch/v1/data_object_search_service.proto\x12\x1cgoogle.cloud.vectorsearch.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a)google/cloud/vectorsearch/v1/common.proto\x1a.google/cloud/vectorsearch/v1/data_object.proto\x1a\x33google/cloud/vectorsearch/v1/embedding_config.proto\x1a\x1cgoogle/protobuf/struct.proto\"e\n\x0cOutputFields\x12\x19\n\x0b\x64\x61ta_fields\x18\x01 \x03(\tB\x04\xe2\x41\x01\x01\x12\x1b\n\rvector_fields\x18\x02 \x03(\tB\x04\xe2\x41\x01\x01\x12\x1d\n\x0fmetadata_fields\x18\x03 \x03(\tB\x04\xe2\x41\x01\x01\"\xc4\x03\n\nSearchHint\x12J\n\x08knn_hint\x18\x03 \x01(\x0b\x32\x30.google.cloud.vectorsearch.v1.SearchHint.KnnHintB\x04\xe2\x41\x01\x01H\x00\x12N\n\nindex_hint\x18\x04 \x01(\x0b\x32\x32.google.cloud.vectorsearch.v1.SearchHint.IndexHintB\x04\xe2\x41\x01\x01H\x00\x1a\x80\x02\n\tIndexHint\x12g\n\x12\x64\x65nse_scann_params\x18\x02 \x01(\x0b\x32\x43.google.cloud.vectorsearch.v1.SearchHint.IndexHint.DenseScannParamsB\x04\xe2\x41\x01\x01H\x00\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!vectorsearch.googleapis.com/Index\x1a\x46\n\x10\x44\x65nseScannParams\x12 \n\rtarget_recall\x18\x03 \x01(\x01\x42\x04\xe2\x41\x01\x01H\x00\x88\x01\x01\x42\x10\n\x0e_target_recallB\x08\n\x06params\x1a\t\n\x07KnnHintB\x0c\n\nindex_type\"\xe6\x01\n\x06Search\x12\x43\n\rvector_search\x18\x01 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.VectorSearchH\x00\x12G\n\x0fsemantic_search\x18\x02 \x01(\x0b\x32,.google.cloud.vectorsearch.v1.SemanticSearchH\x00\x12?\n\x0btext_search\x18\x03 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.TextSearchH\x00\x42\r\n\x0bsearch_type\"\xe9\x03\n\x0cVectorSearch\x12;\n\x06vector\x18\x01 \x01(\x0b\x32).google.cloud.vectorsearch.v1.DenseVectorH\x00\x12\x43\n\rsparse_vector\x18\x02 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.SparseVectorH\x00\x12\x1a\n\x0csearch_field\x18\x08 \x01(\tB\x04\xe2\x41\x01\x02\x12-\n\x06\x66ilter\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12\x18\n\x05top_k\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x01H\x01\x88\x01\x01\x12G\n\routput_fields\x18\x07 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12\x43\n\x0bsearch_hint\x18\t \x01(\x0b\x32(.google.cloud.vectorsearch.v1.SearchHintB\x04\xe2\x41\x01\x01\x12K\n\x0f\x64istance_metric\x18\x0b \x01(\x0e\x32,.google.cloud.vectorsearch.v1.DistanceMetricB\x04\xe2\x41\x01\x01\x42\r\n\x0bvector_typeB\x08\n\x06_top_k\"\xf2\x02\n\x0eSemanticSearch\x12\x19\n\x0bsearch_text\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01\x12\x1a\n\x0csearch_field\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12H\n\ttask_type\x18\x05 \x01(\x0e\x32/.google.cloud.vectorsearch.v1.EmbeddingTaskTypeB\x04\xe2\x41\x01\x01\x12G\n\routput_fields\x18\x03 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12-\n\x06\x66ilter\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12\x18\n\x05top_k\x18\x04 \x01(\x05\x42\x04\xe2\x41\x01\x01H\x00\x88\x01\x01\x12\x43\n\x0bsearch_hint\x18\x07 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.SearchHintB\x04\xe2\x41\x01\x01\x42\x08\n\x06_top_k\"\xb2\x02\n\nTextSearch\x12\x19\n\x0bsearch_text\x18\x01 \x01(\tB\x04\xe2\x41\x01\x01\x12\x1e\n\x10\x64\x61ta_field_names\x18\x02 \x03(\tB\x04\xe2\x41\x01\x01\x12G\n\routput_fields\x18\x03 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12\x18\n\x05top_k\x18\x04 \x01(\x05\x42\x04\xe2\x41\x01\x01H\x00\x88\x01\x01\x12-\n\x06\x66ilter\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12M\n\x10structured_query\x18\x06 \x01(\x0b\x32-.google.cloud.vectorsearch.v1.StructuredQueryB\x04\xe2\x41\x01\x01\x42\x08\n\x06_top_k\"\xfa\x01\n\x0fStructuredQuery\x12=\n\x04text\x18\x01 \x01(\x0b\x32\'.google.cloud.vectorsearch.v1.TextQueryB\x04\xe2\x41\x01\x01H\x00\x12?\n\x05unary\x18\x02 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.UnaryQueryB\x04\xe2\x41\x01\x01H\x00\x12\x44\n\x07\x63ombine\x18\x03 \x01(\x0b\x32+.google.cloud.vectorsearch.v1.CombinedQueryB\x04\xe2\x41\x01\x01H\x00\x12\x13\n\x05\x62oost\x18\x04 \x01(\x02\x42\x04\xe2\x41\x01\x01\x42\x0c\n\nquery_type\"\x91\x02\n\tTextQuery\x12\x12\n\x04text\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02\x12\x14\n\x06\x66ields\x18\x02 \x03(\tB\x04\xe2\x41\x01\x02\x12K\n\nmatch_type\x18\x03 \x01(\x0e\x32\x31.google.cloud.vectorsearch.v1.TextQuery.MatchTypeB\x04\xe2\x41\x01\x01\x12O\n\x11query_enhancement\x18\x04 \x01(\x0b\x32..google.cloud.vectorsearch.v1.QueryEnhancementB\x04\xe2\x41\x01\x01\"<\n\tMatchType\x12\x1a\n\x16MATCH_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04TEXT\x10\x01\x12\t\n\x05\x45XACT\x10\x02\"F\n\x10QueryEnhancement\x12\x15\n\x07\x65nabled\x18\x01 \x01(\x08\x42\x04\xe2\x41\x01\x01\x12\x1b\n\rlanguage_code\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01\"\xc8\x01\n\nUnaryQuery\x12\x43\n\x02op\x18\x01 \x01(\x0e\x32\x31.google.cloud.vectorsearch.v1.UnaryQuery.OperatorB\x04\xe2\x41\x01\x02\x12\x46\n\tsub_query\x18\x02 \x01(\x0b\x32-.google.cloud.vectorsearch.v1.StructuredQueryB\x04\xe2\x41\x01\x02\"-\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03NOT\x10\x01\"\xd8\x01\n\rCombinedQuery\x12\x46\n\x02op\x18\x01 \x01(\x0e\x32\x34.google.cloud.vectorsearch.v1.CombinedQuery.OperatorB\x04\xe2\x41\x01\x02\x12H\n\x0bsub_queries\x18\x02 \x03(\x0b\x32-.google.cloud.vectorsearch.v1.StructuredQueryB\x04\xe2\x41\x01\x02\"5\n\x08Operator\x12\x18\n\x14OPERATOR_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\"\xf2\x02\n\x18SearchDataObjectsRequest\x12\x43\n\rvector_search\x18\x02 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.VectorSearchH\x00\x12G\n\x0fsemantic_search\x18\x04 \x01(\x0b\x32,.google.cloud.vectorsearch.v1.SemanticSearchH\x00\x12\x45\n\x0btext_search\x18\x07 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.TextSearchB\x04\xe2\x41\x01\x01H\x00\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12\x17\n\tpage_size\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x18\n\npage_token\x18\x06 \x01(\tB\x04\xe2\x41\x01\x01\x42\r\n\x0bsearch_type\"}\n\x0cSearchResult\x12\x43\n\x0b\x64\x61ta_object\x18\x01 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x03\x12\x1b\n\x08\x64istance\x18\x02 \x01(\x01\x42\x04\xe2\x41\x01\x03H\x00\x88\x01\x01\x42\x0b\n\t_distance\"}\n\x19SearchDataObjectsResponse\x12\x41\n\x07results\x18\x01 \x03(\x0b\x32*.google.cloud.vectorsearch.v1.SearchResultB\x04\xe2\x41\x01\x03\x12\x1d\n\x0fnext_page_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x03\"\xd7\x01\n\x1b\x41ggregateDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12-\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12H\n\taggregate\x18\x03 \x01(\x0e\x32/.google.cloud.vectorsearch.v1.AggregationMethodB\x04\xe2\x41\x01\x02\"X\n\x1c\x41ggregateDataObjectsResponse\x12\x38\n\x11\x61ggregate_results\x18\x01 \x03(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x03\"\x85\x02\n\x17QueryDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12-\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12G\n\routput_fields\x18\x07 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12\x17\n\tpage_size\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x18\n\npage_token\x18\x06 \x01(\tB\x04\xe2\x41\x01\x01\"\x7f\n\x18QueryDataObjectsResponse\x12\x44\n\x0c\x64\x61ta_objects\x18\x04 \x03(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x03\x12\x1d\n\x0fnext_page_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x03\"\xbc\x03\n\x1d\x42\x61tchSearchDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12<\n\x08searches\x18\x02 \x03(\x0b\x32$.google.cloud.vectorsearch.v1.SearchB\x04\xe2\x41\x01\x02\x12h\n\x07\x63ombine\x18\x03 \x01(\x0b\x32Q.google.cloud.vectorsearch.v1.BatchSearchDataObjectsRequest.CombineResultsOptionsB\x04\xe2\x41\x01\x01\x1a\xb1\x01\n\x15\x43ombineResultsOptions\x12:\n\x06ranker\x18\x01 \x01(\x0b\x32$.google.cloud.vectorsearch.v1.RankerB\x04\xe2\x41\x01\x02\x12G\n\routput_fields\x18\x02 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.OutputFieldsB\x04\xe2\x41\x01\x01\x12\x13\n\x05top_k\x18\x03 \x01(\x05\x42\x04\xe2\x41\x01\x01\"\xac\x01\n\x06Ranker\x12\x41\n\x03rrf\x18\x01 \x01(\x0b\x32\x32.google.cloud.vectorsearch.v1.ReciprocalRankFusionH\x00\x12I\n\rvertex_ranker\x18\x02 \x01(\x0b\x32*.google.cloud.vectorsearch.v1.VertexRankerB\x04\xe2\x41\x01\x01H\x01\x42\x08\n\x06rankerB\n\n\x08reranker\"-\n\x14ReciprocalRankFusion\x12\x15\n\x07weights\x18\x01 \x03(\x01\x42\x04\xe2\x41\x01\x02\"\x83\x02\n\x0cVertexRanker\x12U\n\x10text_record_spec\x18\x06 \x01(\x0b\x32\x39.google.cloud.vectorsearch.v1.VertexRanker.TextRecordSpecH\x00\x12\x13\n\x05model\x18\x04 \x01(\tB\x04\xe2\x41\x01\x02\x12\x13\n\x05top_n\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x02\x1a\x63\n\x0eTextRecordSpec\x12\x13\n\x05query\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02\x12\x1c\n\x0etitle_template\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01\x12\x1e\n\x10\x63ontent_template\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01\x42\r\n\x0brecord_spec\"p\n\x1e\x42\x61tchSearchDataObjectsResponse\x12N\n\x07results\x18\x01 \x03(\x0b\x32\x37.google.cloud.vectorsearch.v1.SearchDataObjectsResponseB\x04\xe2\x41\x01\x03*B\n\x11\x41ggregationMethod\x12\"\n\x1e\x41GGREGATION_METHOD_UNSPECIFIED\x10\x00\x12\t\n\x05\x43OUNT\x10\x01\x32\xcb\x08\n\x17\x44\x61taObjectSearchService\x12\xd5\x01\n\x11SearchDataObjects\x12\x36.google.cloud.vectorsearch.v1.SearchDataObjectsRequest\x1a\x37.google.cloud.vectorsearch.v1.SearchDataObjectsResponse\"O\x82\xd3\xe4\x93\x02I\"D/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:search:\x01*\x12\xd1\x01\n\x10QueryDataObjects\x12\x35.google.cloud.vectorsearch.v1.QueryDataObjectsRequest\x1a\x36.google.cloud.vectorsearch.v1.QueryDataObjectsResponse\"N\x82\xd3\xe4\x93\x02H\"C/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:query:\x01*\x12\xe1\x01\n\x14\x41ggregateDataObjects\x12\x39.google.cloud.vectorsearch.v1.AggregateDataObjectsRequest\x1a:.google.cloud.vectorsearch.v1.AggregateDataObjectsResponse\"R\x82\xd3\xe4\x93\x02L\"G/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:aggregate:\x01*\x12\xe9\x01\n\x16\x42\x61tchSearchDataObjects\x12;.google.cloud.vectorsearch.v1.BatchSearchDataObjectsRequest\x1a<.google.cloud.vectorsearch.v1.BatchSearchDataObjectsResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:batchSearch:\x01*\x1a\xb3\x01\xca\x41\x1bvectorsearch.googleapis.com\xd2\x41\x91\x01https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/vectorsearch,https://www.googleapis.com/auth/vectorsearch.readonlyB\xe8\x01\n com.google.cloud.vectorsearch.v1B\x1c\x44\x61taObjectSearchServiceProtoP\x01ZDcloud.google.com/go/vectorsearch/apiv1/vectorsearchpb;vectorsearchpb\xaa\x02\x1cGoogle.Cloud.VectorSearch.V1\xca\x02\x1cGoogle\\Cloud\\VectorSearch\\V1\xea\x02\x1fGoogle::Cloud::VectorSearch::V1b\x06proto3"
18
18
 
19
19
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
20
20
  pool.add_serialized_file(descriptor_data)
@@ -32,6 +32,14 @@ module Google
32
32
  VectorSearch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.VectorSearch").msgclass
33
33
  SemanticSearch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.SemanticSearch").msgclass
34
34
  TextSearch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.TextSearch").msgclass
35
+ StructuredQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.StructuredQuery").msgclass
36
+ TextQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.TextQuery").msgclass
37
+ TextQuery::MatchType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.TextQuery.MatchType").enummodule
38
+ QueryEnhancement = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.QueryEnhancement").msgclass
39
+ UnaryQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.UnaryQuery").msgclass
40
+ UnaryQuery::Operator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.UnaryQuery.Operator").enummodule
41
+ CombinedQuery = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.CombinedQuery").msgclass
42
+ CombinedQuery::Operator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.CombinedQuery.Operator").enummodule
35
43
  SearchDataObjectsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.SearchDataObjectsRequest").msgclass
36
44
  SearchResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.SearchResult").msgclass
37
45
  SearchDataObjectsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.vectorsearch.v1.SearchDataObjectsResponse").msgclass
@@ -13,7 +13,7 @@ require 'google/protobuf/empty_pb'
13
13
  require 'google/protobuf/field_mask_pb'
14
14
 
15
15
 
16
- descriptor_data = "\n6google/cloud/vectorsearch/v1/data_object_service.proto\x12\x1cgoogle.cloud.vectorsearch.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a.google/cloud/vectorsearch/v1/data_object.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\"\xbd\x01\n\x17\x43reateDataObjectRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12\x1c\n\x0e\x64\x61ta_object_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12\x43\n\x0b\x64\x61ta_object\x18\x03 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x02\"\xaf\x01\n\x1d\x42\x61tchCreateDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12M\n\x08requests\x18\x02 \x03(\x0b\x32\x35.google.cloud.vectorsearch.v1.CreateDataObjectRequestB\x04\xe2\x41\x01\x02\"f\n\x1e\x42\x61tchCreateDataObjectsResponse\x12\x44\n\x0c\x64\x61ta_objects\x18\x01 \x03(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x03\"U\n\x14GetDataObjectRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/DataObject\"\x95\x01\n\x17UpdateDataObjectRequest\x12\x43\n\x0b\x64\x61ta_object\x18\x01 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x02\x12\x35\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01\"\xaf\x01\n\x1d\x42\x61tchUpdateDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12M\n\x08requests\x18\x02 \x03(\x0b\x32\x35.google.cloud.vectorsearch.v1.UpdateDataObjectRequestB\x04\xe2\x41\x01\x02\" \n\x1e\x42\x61tchUpdateDataObjectsResponse\"l\n\x17\x44\x65leteDataObjectRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/DataObject\x12\x12\n\x04\x65tag\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01\"\xaf\x01\n\x1d\x42\x61tchDeleteDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12M\n\x08requests\x18\x03 \x03(\x0b\x32\x35.google.cloud.vectorsearch.v1.DeleteDataObjectRequestB\x04\xe2\x41\x01\x02\x32\xf4\x0c\n\x11\x44\x61taObjectService\x12\xeb\x01\n\x10\x43reateDataObject\x12\x35.google.cloud.vectorsearch.v1.CreateDataObjectRequest\x1a(.google.cloud.vectorsearch.v1.DataObject\"v\xda\x41!parent,data_object,data_object_id\x82\xd3\xe4\x93\x02L\"=/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:\x0b\x64\x61ta_object\x12\xe9\x01\n\x16\x42\x61tchCreateDataObjects\x12;.google.cloud.vectorsearch.v1.BatchCreateDataObjectsRequest\x1a<.google.cloud.vectorsearch.v1.BatchCreateDataObjectsResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:batchCreate:\x01*\x12\xbb\x01\n\rGetDataObject\x12\x32.google.cloud.vectorsearch.v1.GetDataObjectRequest\x1a(.google.cloud.vectorsearch.v1.DataObject\"L\xda\x41\x04name\x82\xd3\xe4\x93\x02?\x12=/v1/{name=projects/*/locations/*/collections/*/dataObjects/*}\x12\xed\x01\n\x10UpdateDataObject\x12\x35.google.cloud.vectorsearch.v1.UpdateDataObjectRequest\x1a(.google.cloud.vectorsearch.v1.DataObject\"x\xda\x41\x17\x64\x61ta_object,update_mask\x82\xd3\xe4\x93\x02X2I/v1/{data_object.name=projects/*/locations/*/collections/*/dataObjects/*}:\x0b\x64\x61ta_object\x12\xfb\x01\n\x16\x42\x61tchUpdateDataObjects\x12;.google.cloud.vectorsearch.v1.BatchUpdateDataObjectsRequest\x1a<.google.cloud.vectorsearch.v1.BatchUpdateDataObjectsResponse\"f\xda\x41\x0fparent,requests\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:batchUpdate:\x01*\x12\xaf\x01\n\x10\x44\x65leteDataObject\x12\x35.google.cloud.vectorsearch.v1.DeleteDataObjectRequest\x1a\x16.google.protobuf.Empty\"L\xda\x41\x04name\x82\xd3\xe4\x93\x02?*=/v1/{name=projects/*/locations/*/collections/*/dataObjects/*}\x12\xd5\x01\n\x16\x42\x61tchDeleteDataObjects\x12;.google.cloud.vectorsearch.v1.BatchDeleteDataObjectsRequest\x1a\x16.google.protobuf.Empty\"f\xda\x41\x0fparent,requests\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:batchDelete:\x01*\x1aO\xca\x41\x1bvectorsearch.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xe2\x01\n com.google.cloud.vectorsearch.v1B\x16\x44\x61taObjectServiceProtoP\x01ZDcloud.google.com/go/vectorsearch/apiv1/vectorsearchpb;vectorsearchpb\xaa\x02\x1cGoogle.Cloud.VectorSearch.V1\xca\x02\x1cGoogle\\Cloud\\VectorSearch\\V1\xea\x02\x1fGoogle::Cloud::VectorSearch::V1b\x06proto3"
16
+ descriptor_data = "\n6google/cloud/vectorsearch/v1/data_object_service.proto\x12\x1cgoogle.cloud.vectorsearch.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a.google/cloud/vectorsearch/v1/data_object.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\"\xbd\x01\n\x17\x43reateDataObjectRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12\x1c\n\x0e\x64\x61ta_object_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12\x43\n\x0b\x64\x61ta_object\x18\x03 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x02\"\xaf\x01\n\x1d\x42\x61tchCreateDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12M\n\x08requests\x18\x02 \x03(\x0b\x32\x35.google.cloud.vectorsearch.v1.CreateDataObjectRequestB\x04\xe2\x41\x01\x02\"f\n\x1e\x42\x61tchCreateDataObjectsResponse\x12\x44\n\x0c\x64\x61ta_objects\x18\x01 \x03(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x03\"U\n\x14GetDataObjectRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/DataObject\"\x95\x01\n\x17UpdateDataObjectRequest\x12\x43\n\x0b\x64\x61ta_object\x18\x01 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.DataObjectB\x04\xe2\x41\x01\x02\x12\x35\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01\"\xaf\x01\n\x1d\x42\x61tchUpdateDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12M\n\x08requests\x18\x02 \x03(\x0b\x32\x35.google.cloud.vectorsearch.v1.UpdateDataObjectRequestB\x04\xe2\x41\x01\x02\" \n\x1e\x42\x61tchUpdateDataObjectsResponse\"l\n\x17\x44\x65leteDataObjectRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/DataObject\x12\x12\n\x04\x65tag\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01\"\xaf\x01\n\x1d\x42\x61tchDeleteDataObjectsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12M\n\x08requests\x18\x03 \x03(\x0b\x32\x35.google.cloud.vectorsearch.v1.DeleteDataObjectRequestB\x04\xe2\x41\x01\x02\x32\xd9\r\n\x11\x44\x61taObjectService\x12\xeb\x01\n\x10\x43reateDataObject\x12\x35.google.cloud.vectorsearch.v1.CreateDataObjectRequest\x1a(.google.cloud.vectorsearch.v1.DataObject\"v\xda\x41!parent,data_object,data_object_id\x82\xd3\xe4\x93\x02L\"=/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:\x0b\x64\x61ta_object\x12\xe9\x01\n\x16\x42\x61tchCreateDataObjects\x12;.google.cloud.vectorsearch.v1.BatchCreateDataObjectsRequest\x1a<.google.cloud.vectorsearch.v1.BatchCreateDataObjectsResponse\"T\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:batchCreate:\x01*\x12\xbb\x01\n\rGetDataObject\x12\x32.google.cloud.vectorsearch.v1.GetDataObjectRequest\x1a(.google.cloud.vectorsearch.v1.DataObject\"L\xda\x41\x04name\x82\xd3\xe4\x93\x02?\x12=/v1/{name=projects/*/locations/*/collections/*/dataObjects/*}\x12\xed\x01\n\x10UpdateDataObject\x12\x35.google.cloud.vectorsearch.v1.UpdateDataObjectRequest\x1a(.google.cloud.vectorsearch.v1.DataObject\"x\xda\x41\x17\x64\x61ta_object,update_mask\x82\xd3\xe4\x93\x02X2I/v1/{data_object.name=projects/*/locations/*/collections/*/dataObjects/*}:\x0b\x64\x61ta_object\x12\xfb\x01\n\x16\x42\x61tchUpdateDataObjects\x12;.google.cloud.vectorsearch.v1.BatchUpdateDataObjectsRequest\x1a<.google.cloud.vectorsearch.v1.BatchUpdateDataObjectsResponse\"f\xda\x41\x0fparent,requests\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:batchUpdate:\x01*\x12\xaf\x01\n\x10\x44\x65leteDataObject\x12\x35.google.cloud.vectorsearch.v1.DeleteDataObjectRequest\x1a\x16.google.protobuf.Empty\"L\xda\x41\x04name\x82\xd3\xe4\x93\x02?*=/v1/{name=projects/*/locations/*/collections/*/dataObjects/*}\x12\xd5\x01\n\x16\x42\x61tchDeleteDataObjects\x12;.google.cloud.vectorsearch.v1.BatchDeleteDataObjectsRequest\x1a\x16.google.protobuf.Empty\"f\xda\x41\x0fparent,requests\x82\xd3\xe4\x93\x02N\"I/v1/{parent=projects/*/locations/*/collections/*}/dataObjects:batchDelete:\x01*\x1a\xb3\x01\xca\x41\x1bvectorsearch.googleapis.com\xd2\x41\x91\x01https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/vectorsearch,https://www.googleapis.com/auth/vectorsearch.readonlyB\xe2\x01\n com.google.cloud.vectorsearch.v1B\x16\x44\x61taObjectServiceProtoP\x01ZDcloud.google.com/go/vectorsearch/apiv1/vectorsearchpb;vectorsearchpb\xaa\x02\x1cGoogle.Cloud.VectorSearch.V1\xca\x02\x1cGoogle\\Cloud\\VectorSearch\\V1\xea\x02\x1fGoogle::Cloud::VectorSearch::V1b\x06proto3"
17
17
 
18
18
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
19
19
  pool.add_serialized_file(descriptor_data)
@@ -20,7 +20,7 @@ require 'google/protobuf/timestamp_pb'
20
20
  require 'google/rpc/status_pb'
21
21
 
22
22
 
23
- descriptor_data = "\n7google/cloud/vectorsearch/v1/vectorsearch_service.proto\x12\x1cgoogle.cloud.vectorsearch.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a)google/cloud/vectorsearch/v1/common.proto\x1a\x33google/cloud/vectorsearch/v1/embedding_config.proto\x1a\x32google/cloud/vectorsearch/v1/encryption_spec.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\x85\x06\n\nCollection\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08\x12\x1a\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x04\xe2\x41\x01\x01\x12\x19\n\x0b\x64\x65scription\x18\t \x01(\tB\x04\xe2\x41\x01\x01\x12\x35\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x35\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12J\n\x06labels\x18\x04 \x03(\x0b\x32\x34.google.cloud.vectorsearch.v1.Collection.LabelsEntryB\x04\xe2\x41\x01\x01\x12W\n\rvector_schema\x18\x07 \x03(\x0b\x32:.google.cloud.vectorsearch.v1.Collection.VectorSchemaEntryB\x04\xe2\x41\x01\x01\x12\x32\n\x0b\x64\x61ta_schema\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12L\n\x0f\x65ncryption_spec\x18\x0b \x01(\x0b\x32,.google.cloud.vectorsearch.v1.EncryptionSpecB\x05\xe2\x41\x02\x05\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a^\n\x11VectorSchemaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).google.cloud.vectorsearch.v1.VectorField:\x02\x38\x01:\x87\x01\xea\x41\x83\x01\n&vectorsearch.googleapis.com/Collection\x12@projects/{project}/locations/{location}/collections/{collection}*\x0b\x63ollections2\ncollection\"\xb5\x01\n\x0bVectorField\x12\x46\n\x0c\x64\x65nse_vector\x18\x03 \x01(\x0b\x32..google.cloud.vectorsearch.v1.DenseVectorFieldH\x00\x12H\n\rsparse_vector\x18\x04 \x01(\x0b\x32/.google.cloud.vectorsearch.v1.SparseVectorFieldH\x00\x42\x14\n\x12vector_type_config\"\x82\x01\n\x10\x44\x65nseVectorField\x12\x12\n\ndimensions\x18\x01 \x01(\x05\x12Z\n\x17vertex_embedding_config\x18\x03 \x01(\x0b\x32\x33.google.cloud.vectorsearch.v1.VertexEmbeddingConfigB\x04\xe2\x41\x01\x01\"\x13\n\x11SparseVectorField\"\xba\x01\n\x16ListCollectionsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\x12&vectorsearch.googleapis.com/Collection\x12\x17\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x18\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01\x12\x14\n\x06\x66ilter\x18\x04 \x01(\tB\x04\xe2\x41\x01\x01\x12\x16\n\x08order_by\x18\x05 \x01(\tB\x04\xe2\x41\x01\x01\"\x8c\x01\n\x17ListCollectionsResponse\x12=\n\x0b\x63ollections\x18\x01 \x03(\x0b\x32(.google.cloud.vectorsearch.v1.Collection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x19\n\x0bunreachable\x18\x03 \x03(\tB\x04\xe2\x41\x01\x06\"U\n\x14GetCollectionRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\"\xdd\x01\n\x17\x43reateCollectionRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\x12&vectorsearch.googleapis.com/Collection\x12\x1b\n\rcollection_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12\x42\n\ncollection\x18\x03 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.CollectionB\x04\xe2\x41\x01\x02\x12 \n\nrequest_id\x18\x04 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb6\x01\n\x17UpdateCollectionRequest\x12\x35\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01\x12\x42\n\ncollection\x18\x02 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.CollectionB\x04\xe2\x41\x01\x02\x12 \n\nrequest_id\x18\x03 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x8f\x01\n\x17\x44\x65leteCollectionRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12 \n\nrequest_id\x18\x02 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x13\n\x05\x66orce\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01\"\xac\x06\n\x05Index\x12_\n\x18\x64\x65\x64icated_infrastructure\x18\x0b \x01(\x0b\x32\x35.google.cloud.vectorsearch.v1.DedicatedInfrastructureB\x04\xe2\x41\x01\x01H\x00\x12J\n\x0b\x64\x65nse_scann\x18\x0c \x01(\x0b\x32-.google.cloud.vectorsearch.v1.DenseScannIndexB\x04\xe2\x41\x01\x01H\x01\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08\x12\x1a\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x04\xe2\x41\x01\x01\x12\x19\n\x0b\x64\x65scription\x18\t \x01(\tB\x04\xe2\x41\x01\x01\x12\x45\n\x06labels\x18\n \x03(\x0b\x32/.google.cloud.vectorsearch.v1.Index.LabelsEntryB\x04\xe2\x41\x01\x01\x12\x35\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x35\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12K\n\x0f\x64istance_metric\x18\x04 \x01(\x0e\x32,.google.cloud.vectorsearch.v1.DistanceMetricB\x04\xe2\x41\x01\x01\x12\x19\n\x0bindex_field\x18\x05 \x01(\tB\x04\xe2\x41\x01\x02\x12\x1b\n\rfilter_fields\x18\x06 \x03(\tB\x04\xe2\x41\x01\x01\x12\x1a\n\x0cstore_fields\x18\x07 \x03(\tB\x04\xe2\x41\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x89\x01\xea\x41\x85\x01\n!vectorsearch.googleapis.com/Index\x12Pprojects/{project}/locations/{location}/collections/{collection}/indexes/{index}*\x07indexes2\x05indexB\x0c\n\ninfra_typeB\x0c\n\nindex_type\"\xc9\x01\n\x12\x43reateIndexRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12\x16\n\x08index_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12\x38\n\x05index\x18\x03 \x01(\x0b\x32#.google.cloud.vectorsearch.v1.IndexB\x04\xe2\x41\x01\x02\x12 \n\nrequest_id\x18\x04 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xa7\x01\n\x12UpdateIndexRequest\x12\x38\n\x05index\x18\x01 \x01(\x0b\x32#.google.cloud.vectorsearch.v1.IndexB\x04\xe2\x41\x01\x02\x12\x35\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01\x12 \n\nrequest_id\x18\x03 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"p\n\x12\x44\x65leteIndexRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!vectorsearch.googleapis.com/Index\x12 \n\nrequest_id\x18\x02 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb1\x01\n\x12ListIndexesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\x12!vectorsearch.googleapis.com/Index\x12\x17\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x18\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01\x12\x14\n\x06\x66ilter\x18\x04 \x01(\tB\x04\xe2\x41\x01\x01\x12\x16\n\x08order_by\x18\x05 \x01(\tB\x04\xe2\x41\x01\x01\"d\n\x13ListIndexesResponse\x12\x34\n\x07indexes\x18\x01 \x03(\x0b\x32#.google.cloud.vectorsearch.v1.Index\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"K\n\x0fGetIndexRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!vectorsearch.googleapis.com/Index\"\x87\x02\n\x11OperationMetadata\x12\x35\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x32\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x14\n\x06target\x18\x03 \x01(\tB\x04\xe2\x41\x01\x03\x12\x12\n\x04verb\x18\x04 \x01(\tB\x04\xe2\x41\x01\x03\x12\x1c\n\x0estatus_message\x18\x05 \x01(\tB\x04\xe2\x41\x01\x03\x12$\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x04\xe2\x41\x01\x03\x12\x19\n\x0b\x61pi_version\x18\x07 \x01(\tB\x04\xe2\x41\x01\x03\"\xa3\x02\n\x18ImportDataObjectsRequest\x12\\\n\ngcs_import\x18\x02 \x01(\x0b\x32\x46.google.cloud.vectorsearch.v1.ImportDataObjectsRequest.GcsImportConfigH\x00\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x1a`\n\x0fGcsImportConfig\x12\x1a\n\x0c\x63ontents_uri\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02\x12\x17\n\terror_uri\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12\x18\n\noutput_uri\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01\x42\x08\n\x06\x63onfig\"\xc3\x01\n\x19ImportDataObjectsMetadata\x12\x35\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x35\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x1b\n\rsuccess_count\x18\x03 \x01(\x03\x42\x04\xe2\x41\x01\x03\x12\x1b\n\rfailure_count\x18\x04 \x01(\x03\x42\x04\xe2\x41\x01\x03\"?\n\x19ImportDataObjectsResponse\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\"\x97\x06\n\x18\x45xportDataObjectsRequest\x12\x66\n\x0fgcs_destination\x18\x02 \x01(\x0b\x32K.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.GcsExportDestinationH\x00\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12^\n\x0c\x66ield_filter\x18\x03 \x01(\x0b\x32\x42.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.FieldFilterB\x04\xe2\x41\x01\x01\x1a\xc7\x01\n\x14GcsExportDestination\x12\x18\n\nexport_uri\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02\x12h\n\x06\x66ormat\x18\x02 \x01(\x0e\x32R.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.GcsExportDestination.FormatB\x04\xe2\x41\x01\x02\"+\n\x06\x46ormat\x12\x16\n\x12\x46ORMAT_UNSPECIFIED\x10\x00\x12\t\n\x05JSONL\x10\x02\x1a\x9a\x02\n\x0b\x46ieldFilter\x12m\n\x0fincluded_fields\x18\x01 \x01(\x0b\x32L.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.FieldFilter.FieldListB\x04\xe2\x41\x01\x01H\x00\x12m\n\x0f\x65xcluded_fields\x18\x02 \x01(\x0b\x32L.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.FieldFilter.FieldListB\x04\xe2\x41\x01\x01H\x00\x1a!\n\tFieldList\x12\x14\n\x06\x66ields\x18\x01 \x03(\tB\x04\xe2\x41\x01\x02\x42\n\n\x08selectorB\r\n\x0b\x64\x65stination\"\x89\x01\n\x19\x45xportDataObjectsMetadata\x12\x35\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x35\n\x0b\x66inish_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\"\x1b\n\x19\x45xportDataObjectsResponse\"\x83\x03\n\x17\x44\x65\x64icatedInfrastructure\x12S\n\x04mode\x18\x01 \x01(\x0e\x32:.google.cloud.vectorsearch.v1.DedicatedInfrastructure.ModeB\x04\xe2\x41\x01\x01H\x00\x88\x01\x01\x12\x65\n\x10\x61utoscaling_spec\x18\x02 \x01(\x0b\x32\x45.google.cloud.vectorsearch.v1.DedicatedInfrastructure.AutoscalingSpecB\x04\xe2\x41\x01\x01\x1aS\n\x0f\x41utoscalingSpec\x12\x1f\n\x11min_replica_count\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x1f\n\x11max_replica_count\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01\"N\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x15\n\x11STORAGE_OPTIMIZED\x10\x01\x12\x19\n\x15PERFORMANCE_OPTIMIZED\x10\x02\x42\x07\n\x05_mode\"\xc3\x01\n\x0f\x44\x65nseScannIndex\x12^\n\x11\x66\x65\x61ture_norm_type\x18\x02 \x01(\x0e\x32=.google.cloud.vectorsearch.v1.DenseScannIndex.FeatureNormTypeB\x04\xe2\x41\x01\x01\"P\n\x0f\x46\x65\x61tureNormType\x12!\n\x1d\x46\x45\x41TURE_NORM_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x10\n\x0cUNIT_L2_NORM\x10\x02\x32\x8d\x15\n\x13VectorSearchService\x12\xc0\x01\n\x0fListCollections\x12\x34.google.cloud.vectorsearch.v1.ListCollectionsRequest\x1a\x35.google.cloud.vectorsearch.v1.ListCollectionsResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/collections\x12\xad\x01\n\rGetCollection\x12\x32.google.cloud.vectorsearch.v1.GetCollectionRequest\x1a(.google.cloud.vectorsearch.v1.Collection\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/collections/*}\x12\xf2\x01\n\x10\x43reateCollection\x12\x35.google.cloud.vectorsearch.v1.CreateCollectionRequest\x1a\x1d.google.longrunning.Operation\"\x87\x01\xca\x41\x1f\n\nCollection\x12\x11OperationMetadata\xda\x41\x1fparent,collection,collection_id\x82\xd3\xe4\x93\x02=\"//v1/{parent=projects/*/locations/*}/collections:\ncollection\x12\xf4\x01\n\x10UpdateCollection\x12\x35.google.cloud.vectorsearch.v1.UpdateCollectionRequest\x1a\x1d.google.longrunning.Operation\"\x89\x01\xca\x41\x1f\n\nCollection\x12\x11OperationMetadata\xda\x41\x16\x63ollection,update_mask\x82\xd3\xe4\x93\x02H2:/v1/{collection.name=projects/*/locations/*/collections/*}:\ncollection\x12\xd5\x01\n\x10\x44\x65leteCollection\x12\x35.google.cloud.vectorsearch.v1.DeleteCollectionRequest\x1a\x1d.google.longrunning.Operation\"k\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/collections/*}\x12\xbe\x01\n\x0bListIndexes\x12\x30.google.cloud.vectorsearch.v1.ListIndexesRequest\x1a\x31.google.cloud.vectorsearch.v1.ListIndexesResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/collections/*}/indexes\x12\xa8\x01\n\x08GetIndex\x12-.google.cloud.vectorsearch.v1.GetIndexRequest\x1a#.google.cloud.vectorsearch.v1.Index\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=projects/*/locations/*/collections/*/indexes/*}\x12\xdd\x01\n\x0b\x43reateIndex\x12\x30.google.cloud.vectorsearch.v1.CreateIndexRequest\x1a\x1d.google.longrunning.Operation\"}\xca\x41\x1a\n\x05Index\x12\x11OperationMetadata\xda\x41\x15parent,index,index_id\x82\xd3\xe4\x93\x02\x42\"9/v1/{parent=projects/*/locations/*/collections/*}/indexes:\x05index\x12\xdf\x01\n\x0bUpdateIndex\x12\x30.google.cloud.vectorsearch.v1.UpdateIndexRequest\x1a\x1d.google.longrunning.Operation\"\x7f\xca\x41\x1a\n\x05Index\x12\x11OperationMetadata\xda\x41\x11index,update_mask\x82\xd3\xe4\x93\x02H2?/v1/{index.name=projects/*/locations/*/collections/*/indexes/*}:\x05index\x12\xd5\x01\n\x0b\x44\x65leteIndex\x12\x30.google.cloud.vectorsearch.v1.DeleteIndexRequest\x1a\x1d.google.longrunning.Operation\"u\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02;*9/v1/{name=projects/*/locations/*/collections/*/indexes/*}\x12\xf2\x01\n\x11ImportDataObjects\x12\x36.google.cloud.vectorsearch.v1.ImportDataObjectsRequest\x1a\x1d.google.longrunning.Operation\"\x85\x01\xca\x41\x36\n\x19ImportDataObjectsResponse\x12\x19ImportDataObjectsMetadata\x82\xd3\xe4\x93\x02\x46\"A/v1/{name=projects/*/locations/*/collections/*}:importDataObjects:\x01*\x12\xf2\x01\n\x11\x45xportDataObjects\x12\x36.google.cloud.vectorsearch.v1.ExportDataObjectsRequest\x1a\x1d.google.longrunning.Operation\"\x85\x01\xca\x41\x36\n\x19\x45xportDataObjectsResponse\x12\x19\x45xportDataObjectsMetadata\x82\xd3\xe4\x93\x02\x46\"A/v1/{name=projects/*/locations/*/collections/*}:exportDataObjects:\x01*\x1aO\xca\x41\x1bvectorsearch.googleapis.com\xd2\x41.https://www.googleapis.com/auth/cloud-platformB\xe4\x01\n com.google.cloud.vectorsearch.v1B\x18VectorSearchServiceProtoP\x01ZDcloud.google.com/go/vectorsearch/apiv1/vectorsearchpb;vectorsearchpb\xaa\x02\x1cGoogle.Cloud.VectorSearch.V1\xca\x02\x1cGoogle\\Cloud\\VectorSearch\\V1\xea\x02\x1fGoogle::Cloud::VectorSearch::V1b\x06proto3"
23
+ descriptor_data = "\n7google/cloud/vectorsearch/v1/vectorsearch_service.proto\x12\x1cgoogle.cloud.vectorsearch.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/field_info.proto\x1a\x19google/api/resource.proto\x1a)google/cloud/vectorsearch/v1/common.proto\x1a\x33google/cloud/vectorsearch/v1/embedding_config.proto\x1a\x32google/cloud/vectorsearch/v1/encryption_spec.proto\x1a#google/longrunning/operations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17google/rpc/status.proto\"\x85\x06\n\nCollection\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08\x12\x1a\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x04\xe2\x41\x01\x01\x12\x19\n\x0b\x64\x65scription\x18\t \x01(\tB\x04\xe2\x41\x01\x01\x12\x35\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x35\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12J\n\x06labels\x18\x04 \x03(\x0b\x32\x34.google.cloud.vectorsearch.v1.Collection.LabelsEntryB\x04\xe2\x41\x01\x01\x12W\n\rvector_schema\x18\x07 \x03(\x0b\x32:.google.cloud.vectorsearch.v1.Collection.VectorSchemaEntryB\x04\xe2\x41\x01\x01\x12\x32\n\x0b\x64\x61ta_schema\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\xe2\x41\x01\x01\x12L\n\x0f\x65ncryption_spec\x18\x0b \x01(\x0b\x32,.google.cloud.vectorsearch.v1.EncryptionSpecB\x05\xe2\x41\x02\x05\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a^\n\x11VectorSchemaEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).google.cloud.vectorsearch.v1.VectorField:\x02\x38\x01:\x87\x01\xea\x41\x83\x01\n&vectorsearch.googleapis.com/Collection\x12@projects/{project}/locations/{location}/collections/{collection}*\x0b\x63ollections2\ncollection\"\xb5\x01\n\x0bVectorField\x12\x46\n\x0c\x64\x65nse_vector\x18\x03 \x01(\x0b\x32..google.cloud.vectorsearch.v1.DenseVectorFieldH\x00\x12H\n\rsparse_vector\x18\x04 \x01(\x0b\x32/.google.cloud.vectorsearch.v1.SparseVectorFieldH\x00\x42\x14\n\x12vector_type_config\"\x82\x01\n\x10\x44\x65nseVectorField\x12\x12\n\ndimensions\x18\x01 \x01(\x05\x12Z\n\x17vertex_embedding_config\x18\x03 \x01(\x0b\x32\x33.google.cloud.vectorsearch.v1.VertexEmbeddingConfigB\x04\xe2\x41\x01\x01\"\x13\n\x11SparseVectorField\"\xba\x01\n\x16ListCollectionsRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\x12&vectorsearch.googleapis.com/Collection\x12\x17\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x18\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01\x12\x14\n\x06\x66ilter\x18\x04 \x01(\tB\x04\xe2\x41\x01\x01\x12\x16\n\x08order_by\x18\x05 \x01(\tB\x04\xe2\x41\x01\x01\"\x8c\x01\n\x17ListCollectionsResponse\x12=\n\x0b\x63ollections\x18\x01 \x03(\x0b\x32(.google.cloud.vectorsearch.v1.Collection\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\x12\x19\n\x0bunreachable\x18\x03 \x03(\tB\x04\xe2\x41\x01\x06\"U\n\x14GetCollectionRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\"\xdd\x01\n\x17\x43reateCollectionRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\x12&vectorsearch.googleapis.com/Collection\x12\x1b\n\rcollection_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12\x42\n\ncollection\x18\x03 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.CollectionB\x04\xe2\x41\x01\x02\x12 \n\nrequest_id\x18\x04 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb6\x01\n\x17UpdateCollectionRequest\x12\x35\n\x0bupdate_mask\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01\x12\x42\n\ncollection\x18\x02 \x01(\x0b\x32(.google.cloud.vectorsearch.v1.CollectionB\x04\xe2\x41\x01\x02\x12 \n\nrequest_id\x18\x03 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\x8f\x01\n\x17\x44\x65leteCollectionRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12 \n\nrequest_id\x18\x02 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\x12\x13\n\x05\x66orce\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01\"\xac\x06\n\x05Index\x12_\n\x18\x64\x65\x64icated_infrastructure\x18\x0b \x01(\x0b\x32\x35.google.cloud.vectorsearch.v1.DedicatedInfrastructureB\x04\xe2\x41\x01\x01H\x00\x12J\n\x0b\x64\x65nse_scann\x18\x0c \x01(\x0b\x32-.google.cloud.vectorsearch.v1.DenseScannIndexB\x04\xe2\x41\x01\x01H\x01\x12\x12\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08\x12\x1a\n\x0c\x64isplay_name\x18\x08 \x01(\tB\x04\xe2\x41\x01\x01\x12\x19\n\x0b\x64\x65scription\x18\t \x01(\tB\x04\xe2\x41\x01\x01\x12\x45\n\x06labels\x18\n \x03(\x0b\x32/.google.cloud.vectorsearch.v1.Index.LabelsEntryB\x04\xe2\x41\x01\x01\x12\x35\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x35\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12K\n\x0f\x64istance_metric\x18\x04 \x01(\x0e\x32,.google.cloud.vectorsearch.v1.DistanceMetricB\x04\xe2\x41\x01\x01\x12\x19\n\x0bindex_field\x18\x05 \x01(\tB\x04\xe2\x41\x01\x02\x12\x1b\n\rfilter_fields\x18\x06 \x03(\tB\x04\xe2\x41\x01\x01\x12\x1a\n\x0cstore_fields\x18\x07 \x03(\tB\x04\xe2\x41\x01\x01\x1a-\n\x0bLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01:\x89\x01\xea\x41\x85\x01\n!vectorsearch.googleapis.com/Index\x12Pprojects/{project}/locations/{location}/collections/{collection}/indexes/{index}*\x07indexes2\x05indexB\x0c\n\ninfra_typeB\x0c\n\nindex_type\"\xc9\x01\n\x12\x43reateIndexRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12\x16\n\x08index_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12\x38\n\x05index\x18\x03 \x01(\x0b\x32#.google.cloud.vectorsearch.v1.IndexB\x04\xe2\x41\x01\x02\x12 \n\nrequest_id\x18\x04 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xa7\x01\n\x12UpdateIndexRequest\x12\x38\n\x05index\x18\x01 \x01(\x0b\x32#.google.cloud.vectorsearch.v1.IndexB\x04\xe2\x41\x01\x02\x12\x35\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01\x12 \n\nrequest_id\x18\x03 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"p\n\x12\x44\x65leteIndexRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!vectorsearch.googleapis.com/Index\x12 \n\nrequest_id\x18\x02 \x01(\tB\x0c\xe2\x41\x01\x01\xe2\x8c\xcf\xd7\x08\x02\x08\x01\"\xb1\x01\n\x12ListIndexesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\x12!vectorsearch.googleapis.com/Index\x12\x17\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x18\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01\x12\x14\n\x06\x66ilter\x18\x04 \x01(\tB\x04\xe2\x41\x01\x01\x12\x16\n\x08order_by\x18\x05 \x01(\tB\x04\xe2\x41\x01\x01\"d\n\x13ListIndexesResponse\x12\x34\n\x07indexes\x18\x01 \x03(\x0b\x32#.google.cloud.vectorsearch.v1.Index\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"K\n\x0fGetIndexRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!vectorsearch.googleapis.com/Index\"\x87\x02\n\x11OperationMetadata\x12\x35\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x32\n\x08\x65nd_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x14\n\x06target\x18\x03 \x01(\tB\x04\xe2\x41\x01\x03\x12\x12\n\x04verb\x18\x04 \x01(\tB\x04\xe2\x41\x01\x03\x12\x1c\n\x0estatus_message\x18\x05 \x01(\tB\x04\xe2\x41\x01\x03\x12$\n\x16requested_cancellation\x18\x06 \x01(\x08\x42\x04\xe2\x41\x01\x03\x12\x19\n\x0b\x61pi_version\x18\x07 \x01(\tB\x04\xe2\x41\x01\x03\"\xa3\x02\n\x18ImportDataObjectsRequest\x12\\\n\ngcs_import\x18\x02 \x01(\x0b\x32\x46.google.cloud.vectorsearch.v1.ImportDataObjectsRequest.GcsImportConfigH\x00\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x1a`\n\x0fGcsImportConfig\x12\x1a\n\x0c\x63ontents_uri\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02\x12\x17\n\terror_uri\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02\x12\x18\n\noutput_uri\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01\x42\x08\n\x06\x63onfig\"\xc3\x01\n\x19ImportDataObjectsMetadata\x12\x35\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x35\n\x0bupdate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x1b\n\rsuccess_count\x18\x03 \x01(\x03\x42\x04\xe2\x41\x01\x03\x12\x1b\n\rfailure_count\x18\x04 \x01(\x03\x42\x04\xe2\x41\x01\x03\"?\n\x19ImportDataObjectsResponse\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\"\x97\x06\n\x18\x45xportDataObjectsRequest\x12\x66\n\x0fgcs_destination\x18\x02 \x01(\x0b\x32K.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.GcsExportDestinationH\x00\x12=\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&vectorsearch.googleapis.com/Collection\x12^\n\x0c\x66ield_filter\x18\x03 \x01(\x0b\x32\x42.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.FieldFilterB\x04\xe2\x41\x01\x01\x1a\xc7\x01\n\x14GcsExportDestination\x12\x18\n\nexport_uri\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02\x12h\n\x06\x66ormat\x18\x02 \x01(\x0e\x32R.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.GcsExportDestination.FormatB\x04\xe2\x41\x01\x02\"+\n\x06\x46ormat\x12\x16\n\x12\x46ORMAT_UNSPECIFIED\x10\x00\x12\t\n\x05JSONL\x10\x02\x1a\x9a\x02\n\x0b\x46ieldFilter\x12m\n\x0fincluded_fields\x18\x01 \x01(\x0b\x32L.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.FieldFilter.FieldListB\x04\xe2\x41\x01\x01H\x00\x12m\n\x0f\x65xcluded_fields\x18\x02 \x01(\x0b\x32L.google.cloud.vectorsearch.v1.ExportDataObjectsRequest.FieldFilter.FieldListB\x04\xe2\x41\x01\x01H\x00\x1a!\n\tFieldList\x12\x14\n\x06\x66ields\x18\x01 \x03(\tB\x04\xe2\x41\x01\x02\x42\n\n\x08selectorB\r\n\x0b\x64\x65stination\"\x89\x01\n\x19\x45xportDataObjectsMetadata\x12\x35\n\x0b\x63reate_time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\x12\x35\n\x0b\x66inish_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x04\xe2\x41\x01\x03\"\x1b\n\x19\x45xportDataObjectsResponse\"\x83\x03\n\x17\x44\x65\x64icatedInfrastructure\x12S\n\x04mode\x18\x01 \x01(\x0e\x32:.google.cloud.vectorsearch.v1.DedicatedInfrastructure.ModeB\x04\xe2\x41\x01\x01H\x00\x88\x01\x01\x12\x65\n\x10\x61utoscaling_spec\x18\x02 \x01(\x0b\x32\x45.google.cloud.vectorsearch.v1.DedicatedInfrastructure.AutoscalingSpecB\x04\xe2\x41\x01\x01\x1aS\n\x0f\x41utoscalingSpec\x12\x1f\n\x11min_replica_count\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01\x12\x1f\n\x11max_replica_count\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01\"N\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x15\n\x11STORAGE_OPTIMIZED\x10\x01\x12\x19\n\x15PERFORMANCE_OPTIMIZED\x10\x02\x42\x07\n\x05_mode\"\xc3\x01\n\x0f\x44\x65nseScannIndex\x12^\n\x11\x66\x65\x61ture_norm_type\x18\x02 \x01(\x0e\x32=.google.cloud.vectorsearch.v1.DenseScannIndex.FeatureNormTypeB\x04\xe2\x41\x01\x01\"P\n\x0f\x46\x65\x61tureNormType\x12!\n\x1d\x46\x45\x41TURE_NORM_TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04NONE\x10\x01\x12\x10\n\x0cUNIT_L2_NORM\x10\x02\x32\xf2\x15\n\x13VectorSearchService\x12\xc0\x01\n\x0fListCollections\x12\x34.google.cloud.vectorsearch.v1.ListCollectionsRequest\x1a\x35.google.cloud.vectorsearch.v1.ListCollectionsResponse\"@\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x31\x12//v1/{parent=projects/*/locations/*}/collections\x12\xad\x01\n\rGetCollection\x12\x32.google.cloud.vectorsearch.v1.GetCollectionRequest\x1a(.google.cloud.vectorsearch.v1.Collection\">\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31\x12//v1/{name=projects/*/locations/*/collections/*}\x12\xf2\x01\n\x10\x43reateCollection\x12\x35.google.cloud.vectorsearch.v1.CreateCollectionRequest\x1a\x1d.google.longrunning.Operation\"\x87\x01\xca\x41\x1f\n\nCollection\x12\x11OperationMetadata\xda\x41\x1fparent,collection,collection_id\x82\xd3\xe4\x93\x02=\"//v1/{parent=projects/*/locations/*}/collections:\ncollection\x12\xf4\x01\n\x10UpdateCollection\x12\x35.google.cloud.vectorsearch.v1.UpdateCollectionRequest\x1a\x1d.google.longrunning.Operation\"\x89\x01\xca\x41\x1f\n\nCollection\x12\x11OperationMetadata\xda\x41\x16\x63ollection,update_mask\x82\xd3\xe4\x93\x02H2:/v1/{collection.name=projects/*/locations/*/collections/*}:\ncollection\x12\xd5\x01\n\x10\x44\x65leteCollection\x12\x35.google.cloud.vectorsearch.v1.DeleteCollectionRequest\x1a\x1d.google.longrunning.Operation\"k\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02\x31*//v1/{name=projects/*/locations/*/collections/*}\x12\xbe\x01\n\x0bListIndexes\x12\x30.google.cloud.vectorsearch.v1.ListIndexesRequest\x1a\x31.google.cloud.vectorsearch.v1.ListIndexesResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=projects/*/locations/*/collections/*}/indexes\x12\xa8\x01\n\x08GetIndex\x12-.google.cloud.vectorsearch.v1.GetIndexRequest\x1a#.google.cloud.vectorsearch.v1.Index\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=projects/*/locations/*/collections/*/indexes/*}\x12\xdd\x01\n\x0b\x43reateIndex\x12\x30.google.cloud.vectorsearch.v1.CreateIndexRequest\x1a\x1d.google.longrunning.Operation\"}\xca\x41\x1a\n\x05Index\x12\x11OperationMetadata\xda\x41\x15parent,index,index_id\x82\xd3\xe4\x93\x02\x42\"9/v1/{parent=projects/*/locations/*/collections/*}/indexes:\x05index\x12\xdf\x01\n\x0bUpdateIndex\x12\x30.google.cloud.vectorsearch.v1.UpdateIndexRequest\x1a\x1d.google.longrunning.Operation\"\x7f\xca\x41\x1a\n\x05Index\x12\x11OperationMetadata\xda\x41\x11index,update_mask\x82\xd3\xe4\x93\x02H2?/v1/{index.name=projects/*/locations/*/collections/*/indexes/*}:\x05index\x12\xd5\x01\n\x0b\x44\x65leteIndex\x12\x30.google.cloud.vectorsearch.v1.DeleteIndexRequest\x1a\x1d.google.longrunning.Operation\"u\xca\x41*\n\x15google.protobuf.Empty\x12\x11OperationMetadata\xda\x41\x04name\x82\xd3\xe4\x93\x02;*9/v1/{name=projects/*/locations/*/collections/*/indexes/*}\x12\xf2\x01\n\x11ImportDataObjects\x12\x36.google.cloud.vectorsearch.v1.ImportDataObjectsRequest\x1a\x1d.google.longrunning.Operation\"\x85\x01\xca\x41\x36\n\x19ImportDataObjectsResponse\x12\x19ImportDataObjectsMetadata\x82\xd3\xe4\x93\x02\x46\"A/v1/{name=projects/*/locations/*/collections/*}:importDataObjects:\x01*\x12\xf2\x01\n\x11\x45xportDataObjects\x12\x36.google.cloud.vectorsearch.v1.ExportDataObjectsRequest\x1a\x1d.google.longrunning.Operation\"\x85\x01\xca\x41\x36\n\x19\x45xportDataObjectsResponse\x12\x19\x45xportDataObjectsMetadata\x82\xd3\xe4\x93\x02\x46\"A/v1/{name=projects/*/locations/*/collections/*}:exportDataObjects:\x01*\x1a\xb3\x01\xca\x41\x1bvectorsearch.googleapis.com\xd2\x41\x91\x01https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/vectorsearch,https://www.googleapis.com/auth/vectorsearch.readonlyB\xe4\x01\n com.google.cloud.vectorsearch.v1B\x18VectorSearchServiceProtoP\x01ZDcloud.google.com/go/vectorsearch/apiv1/vectorsearchpb;vectorsearchpb\xaa\x02\x1cGoogle.Cloud.VectorSearch.V1\xca\x02\x1cGoogle\\Cloud\\VectorSearch\\V1\xea\x02\x1fGoogle::Cloud::VectorSearch::V1b\x06proto3"
24
24
 
25
25
  pool = ::Google::Protobuf::DescriptorPool.generated_pool
26
26
  pool.add_serialized_file(descriptor_data)
@@ -21,16 +21,28 @@ module Google
21
21
  module Cloud
22
22
  module VectorSearch
23
23
  module V1
24
- # Defines a output fields struct for data in DataObject.
24
+ # Defines an output fields struct for data in DataObject.
25
+ #
26
+ # Output fields are opt-in. A search or query result contains only the data
27
+ # object name and ID, plus the fields listed here. If this message is unset or
28
+ # a list is empty, the corresponding part of the data object (`data`,
29
+ # `vectors` or metadata) is omitted from the result; it is not an indication
30
+ # that the stored data object is empty. Use `"*"` in a list to return all
31
+ # fields of that kind.
25
32
  # @!attribute [rw] data_fields
26
33
  # @return [::Array<::String>]
27
- # Optional. The fields from the data fields to include in the output.
34
+ # Optional. The fields from the data fields to include in the output. Use
35
+ # `"*"` to include all data fields. If empty, `data` is omitted from results.
28
36
  # @!attribute [rw] vector_fields
29
37
  # @return [::Array<::String>]
30
- # Optional. The fields from the vector fields to include in the output.
38
+ # Optional. The fields from the vector fields to include in the output. Use
39
+ # `"*"` to include all vector fields. If empty, `vectors` is omitted from
40
+ # results.
31
41
  # @!attribute [rw] metadata_fields
32
42
  # @return [::Array<::String>]
33
- # Optional. The fields from the DataObject metadata to include in the output.
43
+ # Optional. The DataObject metadata fields to include in the output:
44
+ # `create_time`, `update_time` and `etag`. Use `"*"` to include all metadata
45
+ # fields. If empty, these fields are omitted from results.
34
46
  class OutputFields
35
47
  include ::Google::Protobuf::MessageExts
36
48
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -123,8 +135,34 @@ module Google
123
135
  # Required. The vector field to search.
124
136
  # @!attribute [rw] filter
125
137
  # @return [::Google::Protobuf::Struct]
126
- # Optional. A JSON filter expression, e.g. \\{"genre": \\{"$eq": "sci-fi"}},
127
- # represented as a google.protobuf.Struct.
138
+ # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
139
+ # represented as a `google.protobuf.Struct`.
140
+ #
141
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
142
+ # object in the filter must have exactly one key: either a field name mapped
143
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
144
+ # or `$or` with a list of filters, or `$not` with one filter. Field
145
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
146
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
147
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
148
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
149
+ # use `$and` and `$eq` instead.
150
+ #
151
+ # Logical operators can be nested at most 2 levels deep, e.g.
152
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
153
+ # filters are rejected with `INVALID_ARGUMENT`.
154
+ #
155
+ # Which filters are accepted depends on how the search is served. If it is
156
+ # served by an approximate nearest neighbor (ANN) index (by default when a
157
+ # ready index exists on `search_field`, or when one is selected via
158
+ # `search_hint.index_hint`), every filtered field must be listed in
159
+ # `Index.filter_fields` at index creation, `$or` and `$all` are accepted
160
+ # only at the top level of the filter, and `$not` and `$exists` are not
161
+ # supported. Not every unsupported filter is rejected: most produce
162
+ # `INVALID_ARGUMENT`, but some are silently ignored, so do not rely on the
163
+ # error. If no ready index exists on `search_field`, or if
164
+ # `search_hint.knn_hint` is set, the search is served by K-Nearest Neighbor
165
+ # (KNN) search, which has none of these filter restrictions.
128
166
  # @!attribute [rw] top_k
129
167
  # @return [::Integer]
130
168
  # Optional. The number of nearest neighbors to return.
@@ -167,8 +205,34 @@ module Google
167
205
  # Optional. The fields to return in the search results.
168
206
  # @!attribute [rw] filter
169
207
  # @return [::Google::Protobuf::Struct]
170
- # Optional. A JSON filter expression, e.g. \\{"genre": \\{"$eq": "sci-fi"}},
171
- # represented as a google.protobuf.Struct.
208
+ # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
209
+ # represented as a `google.protobuf.Struct`.
210
+ #
211
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
212
+ # object in the filter must have exactly one key: either a field name mapped
213
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
214
+ # or `$or` with a list of filters, or `$not` with one filter. Field
215
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
216
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
217
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
218
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
219
+ # use `$and` and `$eq` instead.
220
+ #
221
+ # Logical operators can be nested at most 2 levels deep, e.g.
222
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
223
+ # filters are rejected with `INVALID_ARGUMENT`.
224
+ #
225
+ # Which filters are accepted depends on how the search is served. If it is
226
+ # served by an approximate nearest neighbor (ANN) index (by default when a
227
+ # ready index exists on `search_field`, or when one is selected via
228
+ # `search_hint.index_hint`), every filtered field must be listed in
229
+ # `Index.filter_fields` at index creation, `$or` and `$all` are accepted
230
+ # only at the top level of the filter, and `$not` and `$exists` are not
231
+ # supported. Not every unsupported filter is rejected: most produce
232
+ # `INVALID_ARGUMENT`, but some are silently ignored, so do not rely on the
233
+ # error. If no ready index exists on `search_field`, or if
234
+ # `search_hint.knn_hint` is set, the search is served by K-Nearest Neighbor
235
+ # (KNN) search, which has none of these filter restrictions.
172
236
  # @!attribute [rw] top_k
173
237
  # @return [::Integer]
174
238
  # Optional. The number of data objects to return.
@@ -200,11 +264,158 @@ module Google
200
264
  # @return [::Google::Protobuf::Struct]
201
265
  # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
202
266
  # represented as a `google.protobuf.Struct`.
267
+ #
268
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
269
+ # object in the filter must have exactly one key: either a field name mapped
270
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
271
+ # or `$or` with a list of filters, or `$not` with one filter. Field
272
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
273
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
274
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
275
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
276
+ # use `$and` and `$eq` instead.
277
+ #
278
+ # Logical operators can be nested at most 2 levels deep, e.g.
279
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
280
+ # filters are rejected with `INVALID_ARGUMENT`.
281
+ # @!attribute [rw] structured_query
282
+ # @return [::Google::Cloud::VectorSearch::V1::StructuredQuery]
283
+ # Optional. Structured query definition. When set, `search_text` and
284
+ # `data_field_names` must be left empty; otherwise the request will be
285
+ # rejected with an `INVALID_ARGUMENT` error. Conversely, when
286
+ # `structured_query` is unset, both `search_text` and `data_field_names`
287
+ # are required.
203
288
  class TextSearch
204
289
  include ::Google::Protobuf::MessageExts
205
290
  extend ::Google::Protobuf::MessageExts::ClassMethods
206
291
  end
207
292
 
293
+ # A structured query for text search. Allows expressing field-targeted text
294
+ # queries combined via boolean operators, with optional per-node boosting.
295
+ # @!attribute [rw] text
296
+ # @return [::Google::Cloud::VectorSearch::V1::TextQuery]
297
+ # Optional. A leaf-level text query.
298
+ #
299
+ # Note: The following fields are mutually exclusive: `text`, `unary`, `combine`. If a field in that set is populated, all other fields in the set will automatically be cleared.
300
+ # @!attribute [rw] unary
301
+ # @return [::Google::Cloud::VectorSearch::V1::UnaryQuery]
302
+ # Optional. A query that applies a unary operator to a sub-query.
303
+ #
304
+ # Note: The following fields are mutually exclusive: `unary`, `text`, `combine`. If a field in that set is populated, all other fields in the set will automatically be cleared.
305
+ # @!attribute [rw] combine
306
+ # @return [::Google::Cloud::VectorSearch::V1::CombinedQuery]
307
+ # Optional. A query that combines multiple sub-queries with a boolean
308
+ # operator.
309
+ #
310
+ # Note: The following fields are mutually exclusive: `combine`, `text`, `unary`. If a field in that set is populated, all other fields in the set will automatically be cleared.
311
+ # @!attribute [rw] boost
312
+ # @return [::Float]
313
+ # Optional. Optional multiplier applied to this query node's contribution to
314
+ # the final relevance score. Must be non-negative; if unset or 0, defaults
315
+ # to 1.0. Values greater than 1.0 increase its influence on ranking, values
316
+ # between 0.0 and 1.0 decrease it.
317
+ class StructuredQuery
318
+ include ::Google::Protobuf::MessageExts
319
+ extend ::Google::Protobuf::MessageExts::ClassMethods
320
+ end
321
+
322
+ # A leaf-level text query targeting one or more data fields. When multiple
323
+ # fields are specified, this is equivalent to combining per-field matches with
324
+ # an OR operator (i.e. the query matches if the text is found in any of the
325
+ # listed fields).
326
+ # @!attribute [rw] text
327
+ # @return [::String]
328
+ # Required. The text to search for.
329
+ # @!attribute [rw] fields
330
+ # @return [::Array<::String>]
331
+ # Required. The data fields to search against.
332
+ # @!attribute [rw] match_type
333
+ # @return [::Google::Cloud::VectorSearch::V1::TextQuery::MatchType]
334
+ # Optional. The matching strategy to apply for this query. If unset, defaults
335
+ # to `TEXT`.
336
+ # @!attribute [rw] query_enhancement
337
+ # @return [::Google::Cloud::VectorSearch::V1::QueryEnhancement]
338
+ # Optional. The query enhancement settings to apply for this query.
339
+ class TextQuery
340
+ include ::Google::Protobuf::MessageExts
341
+ extend ::Google::Protobuf::MessageExts::ClassMethods
342
+
343
+ # The matching strategy to apply when comparing `text` against the content
344
+ # of `fields`.
345
+ module MatchType
346
+ # Defaults to `TEXT`.
347
+ MATCH_TYPE_UNSPECIFIED = 0
348
+
349
+ # Treats `text` as individual search terms combined with an implicit
350
+ # AND: every term must appear in the field, in any order and any
351
+ # position. Case-insensitive.
352
+ TEXT = 1
353
+
354
+ # Matches only when the entire field value is exactly equal to `text`.
355
+ EXACT = 2
356
+ end
357
+ end
358
+
359
+ # Query enhancement settings. When enabled, expands the search terms with
360
+ # stemming, synonyms, and spelling corrections, and removes stop words.
361
+ # @!attribute [rw] enabled
362
+ # @return [::Boolean]
363
+ # Optional. Whether query enhancement is enabled.
364
+ # @!attribute [rw] language_code
365
+ # @return [::String]
366
+ # Optional. The IETF BCP 47 language tag, such as "en-US", for query
367
+ # enhancement. If unset, the language is detected automatically. See
368
+ # <https://en.wikipedia.org/wiki/IETF_language_tag>.
369
+ class QueryEnhancement
370
+ include ::Google::Protobuf::MessageExts
371
+ extend ::Google::Protobuf::MessageExts::ClassMethods
372
+ end
373
+
374
+ # A query that applies a unary operator to a sub-query.
375
+ # @!attribute [rw] op
376
+ # @return [::Google::Cloud::VectorSearch::V1::UnaryQuery::Operator]
377
+ # Required. The unary operator to apply.
378
+ # @!attribute [rw] sub_query
379
+ # @return [::Google::Cloud::VectorSearch::V1::StructuredQuery]
380
+ # Required. The sub-query the operator is applied to.
381
+ class UnaryQuery
382
+ include ::Google::Protobuf::MessageExts
383
+ extend ::Google::Protobuf::MessageExts::ClassMethods
384
+
385
+ # Unary operators applicable to a sub-query.
386
+ module Operator
387
+ # Default value. This value is unused.
388
+ OPERATOR_UNSPECIFIED = 0
389
+
390
+ # Negates the sub-query.
391
+ NOT = 1
392
+ end
393
+ end
394
+
395
+ # A query that combines multiple sub-queries with a boolean operator.
396
+ # @!attribute [rw] op
397
+ # @return [::Google::Cloud::VectorSearch::V1::CombinedQuery::Operator]
398
+ # Required. The boolean operator used to combine the sub-queries.
399
+ # @!attribute [rw] sub_queries
400
+ # @return [::Array<::Google::Cloud::VectorSearch::V1::StructuredQuery>]
401
+ # Required. The sub-queries to be combined.
402
+ class CombinedQuery
403
+ include ::Google::Protobuf::MessageExts
404
+ extend ::Google::Protobuf::MessageExts::ClassMethods
405
+
406
+ # Boolean operators used to combine sub-queries.
407
+ module Operator
408
+ # Default value. This value is unused.
409
+ OPERATOR_UNSPECIFIED = 0
410
+
411
+ # All sub-queries must match.
412
+ AND = 1
413
+
414
+ # At least one sub-query must match.
415
+ OR = 2
416
+ end
417
+ end
418
+
208
419
  # Request for performing a single search.
209
420
  # @!attribute [rw] vector_search
210
421
  # @return [::Google::Cloud::VectorSearch::V1::VectorSearch]
@@ -278,8 +489,22 @@ module Google
278
489
  # Format: `projects/{project}/locations/{location}/collections/{collection}`
279
490
  # @!attribute [rw] filter
280
491
  # @return [::Google::Protobuf::Struct]
281
- # Optional. A JSON filter expression, e.g. \\{"genre": \\{"$eq": "sci-fi"}},
282
- # represented as a google.protobuf.Struct.
492
+ # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
493
+ # represented as a `google.protobuf.Struct`.
494
+ #
495
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
496
+ # object in the filter must have exactly one key: either a field name mapped
497
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
498
+ # or `$or` with a list of filters, or `$not` with one filter. Field
499
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
500
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
501
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
502
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
503
+ # use `$and` and `$eq` instead.
504
+ #
505
+ # Logical operators can be nested at most 2 levels deep, e.g.
506
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
507
+ # filters are rejected with `INVALID_ARGUMENT`.
283
508
  # @!attribute [rw] aggregate
284
509
  # @return [::Google::Cloud::VectorSearch::V1::AggregationMethod]
285
510
  # Required. The aggregation method to apply to the query.
@@ -306,8 +531,22 @@ module Google
306
531
  # Format: `projects/{project}/locations/{location}/collections/{collection}`
307
532
  # @!attribute [rw] filter
308
533
  # @return [::Google::Protobuf::Struct]
309
- # Optional. A JSON filter expression, e.g. \\{"genre": \\{"$eq": "sci-fi"}},
310
- # represented as a google.protobuf.Struct.
534
+ # Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`,
535
+ # represented as a `google.protobuf.Struct`.
536
+ #
537
+ # An empty filter (`{}`) matches all data objects. Otherwise, each JSON
538
+ # object in the filter must have exactly one key: either a field name mapped
539
+ # to one operator (`{"price": {"$lt": 100}}`), or a logical operator: `$and`
540
+ # or `$or` with a list of filters, or `$not` with one filter. Field
541
+ # operators and their values: `$eq` and `$ne` take a string, number or bool;
542
+ # `$lt`, `$lte`, `$gt` and `$gte` take a number; `$in`, `$nin` and `$all`
543
+ # take a list of strings; `$exists` takes a bool. Several keys in one object
544
+ # (implicit AND) and implicit equality (`{"genre": "sci-fi"}`) are rejected;
545
+ # use `$and` and `$eq` instead.
546
+ #
547
+ # Logical operators can be nested at most 2 levels deep, e.g.
548
+ # `{"$and": [{"$or": [{"a": {"$eq": 1}}, {"b": {"$eq": 2}}]}]}`. Deeper
549
+ # filters are rejected with `INVALID_ARGUMENT`.
311
550
  # @!attribute [rw] output_fields
312
551
  # @return [::Google::Cloud::VectorSearch::V1::OutputFields]
313
552
  # Optional. Mask specifying which fields to return.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-vector_search-v1
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC