@google-cloud/discoveryengine 1.1.0 → 1.2.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.
- package/CHANGELOG.md +7 -0
- package/README.md +26 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/common.proto +155 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/completion_service.proto +134 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/conversation.proto +138 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto +306 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/document.proto +121 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/document_service.proto +318 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/import_config.proto +343 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/purge_config.proto +159 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/recommendation_service.proto +221 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/schema.proto +312 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/schema_service.proto +260 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/search_service.proto +851 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/site_search_engine_service.proto +152 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/user_event.proto +475 -0
- package/build/protos/google/cloud/discoveryengine/v1alpha/user_event_service.proto +154 -0
- package/build/protos/protos.d.ts +12587 -7
- package/build/protos/protos.js +34918 -3126
- package/build/protos/protos.json +3458 -5
- package/build/src/index.d.ts +3 -1
- package/build/src/index.js +4 -1
- package/build/src/v1alpha/completion_service_client.d.ts +603 -0
- package/build/src/v1alpha/completion_service_client.js +843 -0
- package/build/src/v1alpha/completion_service_client_config.json +43 -0
- package/build/src/v1alpha/conversational_search_service_client.d.ts +998 -0
- package/build/src/v1alpha/conversational_search_service_client.js +1275 -0
- package/build/src/v1alpha/conversational_search_service_client_config.json +68 -0
- package/build/src/v1alpha/document_service_client.d.ts +1140 -0
- package/build/src/v1alpha/document_service_client.js +1393 -0
- package/build/src/v1alpha/document_service_client_config.json +82 -0
- package/build/src/v1alpha/index.d.ts +8 -0
- package/build/src/v1alpha/index.js +37 -0
- package/build/src/v1alpha/recommendation_service_client.d.ts +735 -0
- package/build/src/v1alpha/recommendation_service_client.js +938 -0
- package/build/src/v1alpha/recommendation_service_client_config.json +43 -0
- package/build/src/v1alpha/schema_service_client.d.ts +935 -0
- package/build/src/v1alpha/schema_service_client.js +1327 -0
- package/build/src/v1alpha/schema_service_client_config.json +63 -0
- package/build/src/v1alpha/search_service_client.d.ts +1208 -0
- package/build/src/v1alpha/search_service_client.js +1432 -0
- package/build/src/v1alpha/search_service_client_config.json +43 -0
- package/build/src/v1alpha/site_search_engine_service_client.d.ts +704 -0
- package/build/src/v1alpha/site_search_engine_service_client.js +1087 -0
- package/build/src/v1alpha/site_search_engine_service_client_config.json +30 -0
- package/build/src/v1alpha/user_event_service_client.d.ts +853 -0
- package/build/src/v1alpha/user_event_service_client.js +1174 -0
- package/build/src/v1alpha/user_event_service_client_config.json +67 -0
- package/package.json +3 -3
@@ -0,0 +1,851 @@
|
|
1
|
+
// Copyright 2022 Google LLC
|
2
|
+
//
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
// you may not use this file except in compliance with the License.
|
5
|
+
// You may obtain a copy of the License at
|
6
|
+
//
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
//
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
// See the License for the specific language governing permissions and
|
13
|
+
// limitations under the License.
|
14
|
+
|
15
|
+
syntax = "proto3";
|
16
|
+
|
17
|
+
package google.cloud.discoveryengine.v1alpha;
|
18
|
+
|
19
|
+
import "google/api/annotations.proto";
|
20
|
+
import "google/api/client.proto";
|
21
|
+
import "google/api/field_behavior.proto";
|
22
|
+
import "google/api/resource.proto";
|
23
|
+
import "google/cloud/discoveryengine/v1alpha/common.proto";
|
24
|
+
import "google/cloud/discoveryengine/v1alpha/document.proto";
|
25
|
+
import "google/protobuf/struct.proto";
|
26
|
+
|
27
|
+
option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha";
|
28
|
+
option go_package = "cloud.google.com/go/discoveryengine/apiv1alpha/discoveryenginepb;discoveryenginepb";
|
29
|
+
option java_multiple_files = true;
|
30
|
+
option java_outer_classname = "SearchServiceProto";
|
31
|
+
option java_package = "com.google.cloud.discoveryengine.v1alpha";
|
32
|
+
option objc_class_prefix = "DISCOVERYENGINE";
|
33
|
+
option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha";
|
34
|
+
option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha";
|
35
|
+
|
36
|
+
// Service for search.
|
37
|
+
service SearchService {
|
38
|
+
option (google.api.default_host) = "discoveryengine.googleapis.com";
|
39
|
+
option (google.api.oauth_scopes) =
|
40
|
+
"https://www.googleapis.com/auth/cloud-platform";
|
41
|
+
|
42
|
+
// Performs a search.
|
43
|
+
rpc Search(SearchRequest) returns (SearchResponse) {
|
44
|
+
option (google.api.http) = {
|
45
|
+
post: "/v1alpha/{serving_config=projects/*/locations/*/dataStores/*/servingConfigs/*}:search"
|
46
|
+
body: "*"
|
47
|
+
additional_bindings {
|
48
|
+
post: "/v1alpha/{serving_config=projects/*/locations/*/collections/*/dataStores/*/servingConfigs/*}:search"
|
49
|
+
body: "*"
|
50
|
+
}
|
51
|
+
additional_bindings {
|
52
|
+
post: "/v1alpha/{serving_config=projects/*/locations/*/collections/*/engines/*/servingConfigs/*}:search"
|
53
|
+
body: "*"
|
54
|
+
}
|
55
|
+
};
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
// Request message for
|
60
|
+
// [SearchService.Search][google.cloud.discoveryengine.v1alpha.SearchService.Search]
|
61
|
+
// method.
|
62
|
+
message SearchRequest {
|
63
|
+
// Specifies the image query input.
|
64
|
+
message ImageQuery {
|
65
|
+
oneof image {
|
66
|
+
// Base64 encoded image bytes. Supported image formats: JPEG, PNG, and
|
67
|
+
// BMP.
|
68
|
+
string image_bytes = 1;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
// A facet specification to perform faceted search.
|
73
|
+
message FacetSpec {
|
74
|
+
// Specifies how a facet is computed.
|
75
|
+
message FacetKey {
|
76
|
+
// Required. Supported textual and numerical facet keys in
|
77
|
+
// [Document][google.cloud.discoveryengine.v1alpha.Document] object, over
|
78
|
+
// which the facet values are computed. Facet key is case-sensitive.
|
79
|
+
string key = 1 [(google.api.field_behavior) = REQUIRED];
|
80
|
+
|
81
|
+
// Set only if values should be bucketed into intervals. Must be set
|
82
|
+
// for facets with numerical values. Must not be set for facet with text
|
83
|
+
// values. Maximum number of intervals is 30.
|
84
|
+
repeated Interval intervals = 2;
|
85
|
+
|
86
|
+
// Only get facet for the given restricted values. Only supported on
|
87
|
+
// textual fields. For example, suppose "category" has three values
|
88
|
+
// "Action > 2022", "Action > 2021" and "Sci-Fi > 2022". If set
|
89
|
+
// "restricted_values" to "Action > 2022", the "category" facet only
|
90
|
+
// contains "Action > 2022". Only supported on textual fields. Maximum
|
91
|
+
// is 10.
|
92
|
+
repeated string restricted_values = 3;
|
93
|
+
|
94
|
+
// Only get facet values that start with the given string prefix. For
|
95
|
+
// example, suppose "category" has three values "Action > 2022",
|
96
|
+
// "Action > 2021" and "Sci-Fi > 2022". If set "prefixes" to "Action", the
|
97
|
+
// "category" facet only contains "Action > 2022" and "Action > 2021".
|
98
|
+
// Only supported on textual fields. Maximum is 10.
|
99
|
+
repeated string prefixes = 4;
|
100
|
+
|
101
|
+
// Only get facet values that contains the given strings. For example,
|
102
|
+
// suppose "category" has three values "Action > 2022",
|
103
|
+
// "Action > 2021" and "Sci-Fi > 2022". If set "contains" to "2022", the
|
104
|
+
// "category" facet only contains "Action > 2022" and "Sci-Fi > 2022".
|
105
|
+
// Only supported on textual fields. Maximum is 10.
|
106
|
+
repeated string contains = 5;
|
107
|
+
|
108
|
+
// True to make facet keys case insensitive when getting faceting
|
109
|
+
// values with prefixes or contains; false otherwise.
|
110
|
+
bool case_insensitive = 6;
|
111
|
+
|
112
|
+
// The order in which documents are returned.
|
113
|
+
//
|
114
|
+
// Allowed values are:
|
115
|
+
//
|
116
|
+
// * "count desc", which means order by
|
117
|
+
// [SearchResponse.Facet.values.count][google.cloud.discoveryengine.v1alpha.SearchResponse.Facet.FacetValue.count]
|
118
|
+
// descending.
|
119
|
+
//
|
120
|
+
// * "value desc", which means order by
|
121
|
+
// [SearchResponse.Facet.values.value][google.cloud.discoveryengine.v1alpha.SearchResponse.Facet.FacetValue.value]
|
122
|
+
// descending.
|
123
|
+
// Only applies to textual facets.
|
124
|
+
//
|
125
|
+
// If not set, textual values are sorted in [natural
|
126
|
+
// order](https://en.wikipedia.org/wiki/Natural_sort_order); numerical
|
127
|
+
// intervals are sorted in the order given by
|
128
|
+
// [FacetSpec.FacetKey.intervals][google.cloud.discoveryengine.v1alpha.SearchRequest.FacetSpec.FacetKey.intervals].
|
129
|
+
string order_by = 7;
|
130
|
+
}
|
131
|
+
|
132
|
+
// Required. The facet key specification.
|
133
|
+
FacetKey facet_key = 1 [(google.api.field_behavior) = REQUIRED];
|
134
|
+
|
135
|
+
// Maximum of facet values that should be returned for this facet. If
|
136
|
+
// unspecified, defaults to 20. The maximum allowed value is 300. Values
|
137
|
+
// above 300 are coerced to 300.
|
138
|
+
//
|
139
|
+
// If this field is negative, an `INVALID_ARGUMENT` is returned.
|
140
|
+
int32 limit = 2;
|
141
|
+
|
142
|
+
// List of keys to exclude when faceting.
|
143
|
+
//
|
144
|
+
//
|
145
|
+
// By default,
|
146
|
+
// [FacetKey.key][google.cloud.discoveryengine.v1alpha.SearchRequest.FacetSpec.FacetKey.key]
|
147
|
+
// is not excluded from the filter unless it is listed in this field.
|
148
|
+
//
|
149
|
+
// Listing a facet key in this field allows its values to appear as facet
|
150
|
+
// results, even when they are filtered out of search results. Using this
|
151
|
+
// field does not affect what search results are returned.
|
152
|
+
//
|
153
|
+
// For example, suppose there are 100 documents with the color facet "Red"
|
154
|
+
// and 200 documents with the color facet "Blue". A query containing the
|
155
|
+
// filter "color:ANY("Red")" and having "color" as
|
156
|
+
// [FacetKey.key][google.cloud.discoveryengine.v1alpha.SearchRequest.FacetSpec.FacetKey.key]
|
157
|
+
// would by default return only "Red" documents in the search results, and
|
158
|
+
// also return "Red" with count 100 as the only color facet. Although there
|
159
|
+
// are also blue documents available, "Blue" would not be shown as an
|
160
|
+
// available facet value.
|
161
|
+
//
|
162
|
+
// If "color" is listed in "excludedFilterKeys", then the query returns the
|
163
|
+
// facet values "Red" with count 100 and "Blue" with count 200, because the
|
164
|
+
// "color" key is now excluded from the filter. Because this field doesn't
|
165
|
+
// affect search results, the search results are still correctly filtered to
|
166
|
+
// return only "Red" documents.
|
167
|
+
//
|
168
|
+
// A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT`
|
169
|
+
// error is returned.
|
170
|
+
repeated string excluded_filter_keys = 3;
|
171
|
+
|
172
|
+
// Enables dynamic position for this facet. If set to true, the position of
|
173
|
+
// this facet among all facets in the response is determined automatically.
|
174
|
+
// If dynamic facets are enabled, it is ordered together.
|
175
|
+
// If set to false, the position of this facet in the
|
176
|
+
// response is the same as in the request, and it is ranked before
|
177
|
+
// the facets with dynamic position enable and all dynamic facets.
|
178
|
+
//
|
179
|
+
// For example, you may always want to have rating facet returned in
|
180
|
+
// the response, but it's not necessarily to always display the rating facet
|
181
|
+
// at the top. In that case, you can set enable_dynamic_position to true so
|
182
|
+
// that the position of rating facet in response is determined
|
183
|
+
// automatically.
|
184
|
+
//
|
185
|
+
// Another example, assuming you have the following facets in the request:
|
186
|
+
//
|
187
|
+
// * "rating", enable_dynamic_position = true
|
188
|
+
//
|
189
|
+
// * "price", enable_dynamic_position = false
|
190
|
+
//
|
191
|
+
// * "brands", enable_dynamic_position = false
|
192
|
+
//
|
193
|
+
// And also you have a dynamic facets enabled, which generates a facet
|
194
|
+
// `gender`. Then the final order of the facets in the response can be
|
195
|
+
// ("price", "brands", "rating", "gender") or ("price", "brands", "gender",
|
196
|
+
// "rating") depends on how API orders "gender" and "rating" facets.
|
197
|
+
// However, notice that "price" and "brands" are always
|
198
|
+
// ranked at first and second position because their enable_dynamic_position
|
199
|
+
// is false.
|
200
|
+
bool enable_dynamic_position = 4;
|
201
|
+
}
|
202
|
+
|
203
|
+
// Boost specification to boost certain documents.
|
204
|
+
message BoostSpec {
|
205
|
+
// Boost applies to documents which match a condition.
|
206
|
+
message ConditionBoostSpec {
|
207
|
+
// An expression which specifies a boost condition. The syntax and
|
208
|
+
// supported fields are the same as a filter expression. See
|
209
|
+
// [SearchRequest.filter][google.cloud.discoveryengine.v1alpha.SearchRequest.filter]
|
210
|
+
// for detail syntax and limitations.
|
211
|
+
//
|
212
|
+
// Examples:
|
213
|
+
//
|
214
|
+
// * To boost documents with document ID "doc_1" or "doc_2", and
|
215
|
+
// color
|
216
|
+
// "Red" or "Blue":
|
217
|
+
// * (id: ANY("doc_1", "doc_2")) AND (color: ANY("Red","Blue"))
|
218
|
+
string condition = 1;
|
219
|
+
|
220
|
+
// Strength of the condition boost, which should be in [-1, 1]. Negative
|
221
|
+
// boost means demotion. Default is 0.0.
|
222
|
+
//
|
223
|
+
// Setting to 1.0 gives the document a big promotion. However, it does not
|
224
|
+
// necessarily mean that the boosted document will be the top result at
|
225
|
+
// all times, nor that other documents will be excluded. Results could
|
226
|
+
// still be shown even when none of them matches the condition. And
|
227
|
+
// results that are significantly more relevant to the search query can
|
228
|
+
// still trump your heavily favored but irrelevant documents.
|
229
|
+
//
|
230
|
+
// Setting to -1.0 gives the document a big demotion. However, results
|
231
|
+
// that are deeply relevant might still be shown. The document will have
|
232
|
+
// an upstream battle to get a fairly high ranking, but it is not blocked
|
233
|
+
// out completely.
|
234
|
+
//
|
235
|
+
// Setting to 0.0 means no boost applied. The boosting condition is
|
236
|
+
// ignored.
|
237
|
+
float boost = 2;
|
238
|
+
}
|
239
|
+
|
240
|
+
// Condition boost specifications. If a document matches multiple conditions
|
241
|
+
// in the specifictions, boost scores from these specifications are all
|
242
|
+
// applied and combined in a non-linear way. Maximum number of
|
243
|
+
// specifications is 20.
|
244
|
+
repeated ConditionBoostSpec condition_boost_specs = 1;
|
245
|
+
}
|
246
|
+
|
247
|
+
// Specification to determine under which conditions query expansion should
|
248
|
+
// occur.
|
249
|
+
message QueryExpansionSpec {
|
250
|
+
// Enum describing under which condition query expansion should occur.
|
251
|
+
enum Condition {
|
252
|
+
// Unspecified query expansion condition. In this case, server behavior
|
253
|
+
// defaults to
|
254
|
+
// [Condition.DISABLED][google.cloud.discoveryengine.v1alpha.SearchRequest.QueryExpansionSpec.Condition.DISABLED].
|
255
|
+
CONDITION_UNSPECIFIED = 0;
|
256
|
+
|
257
|
+
// Disabled query expansion. Only the exact search query is used, even if
|
258
|
+
// [SearchResponse.total_size][google.cloud.discoveryengine.v1alpha.SearchResponse.total_size]
|
259
|
+
// is zero.
|
260
|
+
DISABLED = 1;
|
261
|
+
|
262
|
+
// Automatic query expansion built by the Search API.
|
263
|
+
AUTO = 2;
|
264
|
+
}
|
265
|
+
|
266
|
+
// The condition under which query expansion should occur. Default to
|
267
|
+
// [Condition.DISABLED][google.cloud.discoveryengine.v1alpha.SearchRequest.QueryExpansionSpec.Condition.DISABLED].
|
268
|
+
Condition condition = 1;
|
269
|
+
|
270
|
+
// Whether to pin unexpanded results. If this field is set to true,
|
271
|
+
// unexpanded products are always at the top of the search results, followed
|
272
|
+
// by the expanded results.
|
273
|
+
bool pin_unexpanded_results = 2;
|
274
|
+
}
|
275
|
+
|
276
|
+
// The specification for query spell correction.
|
277
|
+
message SpellCorrectionSpec {
|
278
|
+
// Enum describing under which mode spell correction should occur.
|
279
|
+
enum Mode {
|
280
|
+
// Unspecified spell correction mode. In this case, server behavior
|
281
|
+
// defaults to
|
282
|
+
// [Mode.AUTO][google.cloud.discoveryengine.v1alpha.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
|
283
|
+
MODE_UNSPECIFIED = 0;
|
284
|
+
|
285
|
+
// Search API will try to find a spell suggestion if there
|
286
|
+
// is any and put in the
|
287
|
+
// [SearchResponse.corrected_query][google.cloud.discoveryengine.v1alpha.SearchResponse.corrected_query].
|
288
|
+
// The spell suggestion will not be used as the search query.
|
289
|
+
SUGGESTION_ONLY = 1;
|
290
|
+
|
291
|
+
// Automatic spell correction built by the Search API. Search will
|
292
|
+
// be based on the corrected query if found.
|
293
|
+
AUTO = 2;
|
294
|
+
}
|
295
|
+
|
296
|
+
// The mode under which spell correction should take effect to
|
297
|
+
// replace the original search query. Default to
|
298
|
+
// [Mode.AUTO][google.cloud.discoveryengine.v1alpha.SearchRequest.SpellCorrectionSpec.Mode.AUTO].
|
299
|
+
Mode mode = 1;
|
300
|
+
}
|
301
|
+
|
302
|
+
// A specification for configuring the behavior of content search.
|
303
|
+
message ContentSearchSpec {
|
304
|
+
// A specification for configuring snippets in a search response.
|
305
|
+
message SnippetSpec {
|
306
|
+
// [DEPRECATED] This field is deprecated. To control snippet return, use
|
307
|
+
// `return_snippet` field. For backwards compatibility, we will return
|
308
|
+
// snippet if max_snippet_count > 0.
|
309
|
+
int32 max_snippet_count = 1 [deprecated = true];
|
310
|
+
|
311
|
+
// [DEPRECATED] This field is deprecated and will have no affect on the
|
312
|
+
// snippet.
|
313
|
+
bool reference_only = 2 [deprecated = true];
|
314
|
+
|
315
|
+
// If `true`, then return snippet. If no snippet can be generated, we
|
316
|
+
// return "No snippet is available for this page." A `snippet_status` with
|
317
|
+
// `SUCCESS` or `NO_SNIPPET_AVAILABLE` will also be returned.
|
318
|
+
bool return_snippet = 3;
|
319
|
+
}
|
320
|
+
|
321
|
+
// A specification for configuring a summary returned in a search
|
322
|
+
// response.
|
323
|
+
message SummarySpec {
|
324
|
+
// The number of top results to generate the summary from. If the number
|
325
|
+
// of results returned is less than `summaryResultCount`, the summary is
|
326
|
+
// generated from all of the results.
|
327
|
+
//
|
328
|
+
// At most five results can be used to generate a summary.
|
329
|
+
int32 summary_result_count = 1;
|
330
|
+
|
331
|
+
// Specifies whether to include citations in the summary. The default
|
332
|
+
// value is `false`.
|
333
|
+
//
|
334
|
+
// When this field is set to `true`, summaries include in-line citation
|
335
|
+
// numbers.
|
336
|
+
//
|
337
|
+
// Example summary including citations:
|
338
|
+
//
|
339
|
+
// BigQuery is Google Cloud's fully managed and completely serverless
|
340
|
+
// enterprise data warehouse [1]. BigQuery supports all data types, works
|
341
|
+
// across clouds, and has built-in machine learning and business
|
342
|
+
// intelligence, all within a unified platform [2, 3].
|
343
|
+
//
|
344
|
+
// The citation numbers refer to the returned search results and are
|
345
|
+
// 1-indexed. For example, [1] means that the sentence is attributed to
|
346
|
+
// the first search result. [2, 3] means that the sentence is attributed
|
347
|
+
// to both the second and third search results.
|
348
|
+
bool include_citations = 2;
|
349
|
+
|
350
|
+
// Specifies whether to filter out adversarial queries. The default value
|
351
|
+
// is `false`.
|
352
|
+
//
|
353
|
+
// Google employs search-query classification to detect adversarial
|
354
|
+
// queries. No summary is returned if the search query is classified as an
|
355
|
+
// adversarial query. For example, a user might ask a question regarding
|
356
|
+
// negative comments about the company or submit a query designed to
|
357
|
+
// generate unsafe, policy-violating output. If this field is set to
|
358
|
+
// `true`, we skip generating summaries for adversarial queries and return
|
359
|
+
// fallback messages instead.
|
360
|
+
bool ignore_adversarial_query = 3;
|
361
|
+
|
362
|
+
// Specifies whether to filter out queries that are not summary-seeking.
|
363
|
+
// The default value is `false`.
|
364
|
+
//
|
365
|
+
// Google employs search-query classification to detect summary-seeking
|
366
|
+
// queries. No summary is returned if the search query is classified as a
|
367
|
+
// non-summary seeking query. For example, `why is the sky blue` and `Who
|
368
|
+
// is the best soccer player in the world?` are summary-seeking queries,
|
369
|
+
// but `SFO airport` and `world cup 2026` are not. They are most likely
|
370
|
+
// navigational queries. If this field is set to `true`, we skip
|
371
|
+
// generating summaries for non-summary seeking queries and return
|
372
|
+
// fallback messages instead.
|
373
|
+
bool ignore_non_summary_seeking_query = 4;
|
374
|
+
|
375
|
+
// Language code for Summary. Use language tags defined by
|
376
|
+
// [BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).
|
377
|
+
// Note: This is an experimental feature.
|
378
|
+
string language_code = 6;
|
379
|
+
}
|
380
|
+
|
381
|
+
// A specification for configuring the extractive content in a search
|
382
|
+
// response.
|
383
|
+
message ExtractiveContentSpec {
|
384
|
+
// The maximum number of extractive answers returned in each search
|
385
|
+
// result.
|
386
|
+
//
|
387
|
+
// An extractive answer is a verbatim answer extracted from the original
|
388
|
+
// document, which provides a precise and contextually relevant answer to
|
389
|
+
// the search query.
|
390
|
+
//
|
391
|
+
// If the number of matching answers is less than the
|
392
|
+
// `max_extractive_answer_count`, return all of the answers. Otherwise,
|
393
|
+
// return the `max_extractive_answer_count`.
|
394
|
+
//
|
395
|
+
// At most one answer is returned for each
|
396
|
+
// [SearchResult][google.cloud.discoveryengine.v1alpha.SearchResponse.SearchResult].
|
397
|
+
int32 max_extractive_answer_count = 1;
|
398
|
+
|
399
|
+
// The max number of extractive segments returned in each search result.
|
400
|
+
// Only applied if the
|
401
|
+
// [DataStore][google.cloud.discoveryengine.v1alpha.DataStore] is set to
|
402
|
+
// [DataStore.ContentConfig.CONTENT_REQUIRED][google.cloud.discoveryengine.v1alpha.DataStore.ContentConfig.CONTENT_REQUIRED]
|
403
|
+
// or
|
404
|
+
// [DataStore.solution_types][google.cloud.discoveryengine.v1alpha.DataStore.solution_types]
|
405
|
+
// is
|
406
|
+
// [SOLUTION_TYPE_CHAT][google.cloud.discoveryengine.v1alpha.SolutionType.SOLUTION_TYPE_CHAT].
|
407
|
+
//
|
408
|
+
// An extractive segment is a text segment extracted from the original
|
409
|
+
// document that is relevant to the search query, and, in general, more
|
410
|
+
// verbose than an extractive answer. The segment could then be used as
|
411
|
+
// input for LLMs to generate summaries and answers.
|
412
|
+
//
|
413
|
+
// If the number of matching segments is less than
|
414
|
+
// `max_extractive_segment_count`, return all of the segments. Otherwise,
|
415
|
+
// return the `max_extractive_segment_count`.
|
416
|
+
int32 max_extractive_segment_count = 2;
|
417
|
+
|
418
|
+
// Specifies whether to return the confidence score from the extractive
|
419
|
+
// segments in each search result. The default value is `false`.
|
420
|
+
//
|
421
|
+
// Note: this is a priavte preview feature and only works for allowlisted
|
422
|
+
// users, please reach out to Cloud Support team if you want to use it.
|
423
|
+
bool return_extractive_segment_score = 3;
|
424
|
+
|
425
|
+
// Specifies whether to also include the adjacent from each selected
|
426
|
+
// segments.
|
427
|
+
// Return at most `num_previous_segments` segments before each selected
|
428
|
+
// segments.
|
429
|
+
int32 num_previous_segments = 4;
|
430
|
+
|
431
|
+
// Return at most `num_next_segments` segments after each selected
|
432
|
+
// segments.
|
433
|
+
int32 num_next_segments = 5;
|
434
|
+
}
|
435
|
+
|
436
|
+
// If `snippetSpec` is not specified, snippets are not included in the
|
437
|
+
// search response.
|
438
|
+
SnippetSpec snippet_spec = 1;
|
439
|
+
|
440
|
+
// If `summarySpec` is not specified, summaries are not included in the
|
441
|
+
// search response.
|
442
|
+
SummarySpec summary_spec = 2;
|
443
|
+
|
444
|
+
// If there is no extractive_content_spec provided, there will be no
|
445
|
+
// extractive answer in the search response.
|
446
|
+
ExtractiveContentSpec extractive_content_spec = 3;
|
447
|
+
}
|
448
|
+
|
449
|
+
// The specification that uses customized query embedding vector to do
|
450
|
+
// semantic document retrieval.
|
451
|
+
message EmbeddingSpec {
|
452
|
+
// Embedding vector.
|
453
|
+
message EmbeddingVector {
|
454
|
+
// Embedding field path in schema.
|
455
|
+
string field_path = 1;
|
456
|
+
|
457
|
+
// Query embedding vector.
|
458
|
+
repeated float vector = 2;
|
459
|
+
}
|
460
|
+
|
461
|
+
// The embedding vector used for retrieval. Limit to 1.
|
462
|
+
repeated EmbeddingVector embedding_vectors = 1;
|
463
|
+
}
|
464
|
+
|
465
|
+
// Required. The resource name of the Search serving config, such as
|
466
|
+
// `projects/*/locations/global/collections/default_collection/dataStores/default_data_store/servingConfigs/default_serving_config`.
|
467
|
+
// This field is used to identify the serving configuration name, set
|
468
|
+
// of models used to make the search.
|
469
|
+
string serving_config = 1 [
|
470
|
+
(google.api.field_behavior) = REQUIRED,
|
471
|
+
(google.api.resource_reference) = {
|
472
|
+
type: "discoveryengine.googleapis.com/ServingConfig"
|
473
|
+
}
|
474
|
+
];
|
475
|
+
|
476
|
+
// The branch resource name, such as
|
477
|
+
// `projects/*/locations/global/collections/default_collection/dataStores/default_data_store/branches/0`.
|
478
|
+
//
|
479
|
+
// Use `default_branch` as the branch ID or leave this field empty, to search
|
480
|
+
// documents under the default branch.
|
481
|
+
string branch = 2 [(google.api.resource_reference) = {
|
482
|
+
type: "discoveryengine.googleapis.com/Branch"
|
483
|
+
}];
|
484
|
+
|
485
|
+
// Raw search query.
|
486
|
+
string query = 3;
|
487
|
+
|
488
|
+
// Raw image query.
|
489
|
+
ImageQuery image_query = 19;
|
490
|
+
|
491
|
+
// Maximum number of
|
492
|
+
// [Document][google.cloud.discoveryengine.v1alpha.Document]s to return. If
|
493
|
+
// unspecified, defaults to a reasonable value. The maximum allowed value is
|
494
|
+
// 100. Values above 100 are coerced to 100.
|
495
|
+
//
|
496
|
+
// If this field is negative, an `INVALID_ARGUMENT` is returned.
|
497
|
+
int32 page_size = 4;
|
498
|
+
|
499
|
+
// A page token received from a previous
|
500
|
+
// [SearchService.Search][google.cloud.discoveryengine.v1alpha.SearchService.Search]
|
501
|
+
// call. Provide this to retrieve the subsequent page.
|
502
|
+
//
|
503
|
+
// When paginating, all other parameters provided to
|
504
|
+
// [SearchService.Search][google.cloud.discoveryengine.v1alpha.SearchService.Search]
|
505
|
+
// must match the call that provided the page token. Otherwise, an
|
506
|
+
// `INVALID_ARGUMENT` error is returned.
|
507
|
+
string page_token = 5;
|
508
|
+
|
509
|
+
// A 0-indexed integer that specifies the current offset (that is, starting
|
510
|
+
// result location, amongst the
|
511
|
+
// [Document][google.cloud.discoveryengine.v1alpha.Document]s deemed by the
|
512
|
+
// API as relevant) in search results. This field is only considered if
|
513
|
+
// [page_token][google.cloud.discoveryengine.v1alpha.SearchRequest.page_token]
|
514
|
+
// is unset.
|
515
|
+
//
|
516
|
+
// If this field is negative, an `INVALID_ARGUMENT` is returned.
|
517
|
+
int32 offset = 6;
|
518
|
+
|
519
|
+
// The filter syntax consists of an expression language for constructing a
|
520
|
+
// predicate from one or more fields of the documents being filtered. Filter
|
521
|
+
// expression is case-sensitive.
|
522
|
+
//
|
523
|
+
// If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
|
524
|
+
string filter = 7;
|
525
|
+
|
526
|
+
// The order in which documents are returned. Documents can be ordered by
|
527
|
+
// a field in an [Document][google.cloud.discoveryengine.v1alpha.Document]
|
528
|
+
// object. Leave it unset if ordered by relevance. `order_by` expression is
|
529
|
+
// case-sensitive.
|
530
|
+
//
|
531
|
+
// If this field is unrecognizable, an `INVALID_ARGUMENT` is returned.
|
532
|
+
string order_by = 8;
|
533
|
+
|
534
|
+
// Information about the end user.
|
535
|
+
// Highly recommended for analytics.
|
536
|
+
// [UserInfo.user_agent][google.cloud.discoveryengine.v1alpha.UserInfo.user_agent]
|
537
|
+
// is used to deduce `device_type` for analytics.
|
538
|
+
UserInfo user_info = 21;
|
539
|
+
|
540
|
+
// Facet specifications for faceted search. If empty, no facets are returned.
|
541
|
+
//
|
542
|
+
// A maximum of 100 values are allowed. Otherwise, an `INVALID_ARGUMENT`
|
543
|
+
// error is returned.
|
544
|
+
repeated FacetSpec facet_specs = 9;
|
545
|
+
|
546
|
+
// Boost specification to boost certain documents.
|
547
|
+
BoostSpec boost_spec = 10;
|
548
|
+
|
549
|
+
// Additional search parameters.
|
550
|
+
//
|
551
|
+
// For public website search only, supported values are:
|
552
|
+
//
|
553
|
+
// * `user_country_code`: string. Default empty. If set to non-empty, results
|
554
|
+
// are restricted or boosted based on the location provided.
|
555
|
+
// * `search_type`: double. Default empty. Enables non-webpage searching
|
556
|
+
// depending on the value. The only valid non-default value is 1,
|
557
|
+
// which enables image searching.
|
558
|
+
map<string, google.protobuf.Value> params = 11;
|
559
|
+
|
560
|
+
// The query expansion specification that specifies the conditions under which
|
561
|
+
// query expansion occurs.
|
562
|
+
QueryExpansionSpec query_expansion_spec = 13;
|
563
|
+
|
564
|
+
// The spell correction specification that specifies the mode under
|
565
|
+
// which spell correction takes effect.
|
566
|
+
SpellCorrectionSpec spell_correction_spec = 14;
|
567
|
+
|
568
|
+
// A unique identifier for tracking visitors. For example, this could be
|
569
|
+
// implemented with an HTTP cookie, which should be able to uniquely identify
|
570
|
+
// a visitor on a single device. This unique identifier should not change if
|
571
|
+
// the visitor logs in or out of the website.
|
572
|
+
//
|
573
|
+
// This field should NOT have a fixed value such as `unknown_visitor`.
|
574
|
+
//
|
575
|
+
// This should be the same identifier as
|
576
|
+
// [UserEvent.user_pseudo_id][google.cloud.discoveryengine.v1alpha.UserEvent.user_pseudo_id]
|
577
|
+
// and
|
578
|
+
// [CompleteQueryRequest.user_pseudo_id][google.cloud.discoveryengine.v1alpha.CompleteQueryRequest.user_pseudo_id]
|
579
|
+
//
|
580
|
+
// The field must be a UTF-8 encoded string with a length limit of 128
|
581
|
+
// characters. Otherwise, an `INVALID_ARGUMENT` error is returned.
|
582
|
+
string user_pseudo_id = 15;
|
583
|
+
|
584
|
+
// A specification for configuring the behavior of content search.
|
585
|
+
ContentSearchSpec content_search_spec = 24;
|
586
|
+
|
587
|
+
// Uses the provided embedding to do additional semantic document retrieval.
|
588
|
+
// The retrieval is based on the dot product of
|
589
|
+
// [SearchRequest.embedding_spec.embedding_vectors.vector][] and the document
|
590
|
+
// embedding that is provided in
|
591
|
+
// [SearchRequest.embedding_spec.embedding_vectors.field_path][].
|
592
|
+
//
|
593
|
+
// If [SearchRequest.embedding_spec.embedding_vectors.field_path][] is not
|
594
|
+
// provided, it will use [ServingConfig.embedding_config.field_paths][].
|
595
|
+
EmbeddingSpec embedding_spec = 23;
|
596
|
+
|
597
|
+
// The ranking expression controls the customized ranking on retrieval
|
598
|
+
// documents. This overrides
|
599
|
+
// [ServingConfig.ranking_expression][google.cloud.discoveryengine.v1alpha.ServingConfig.ranking_expression].
|
600
|
+
// The ranking expression is a single function or multiple functions that are
|
601
|
+
// joint by "+".
|
602
|
+
// * ranking_expression = function, { " + ", function };
|
603
|
+
// Supported functions:
|
604
|
+
// * double * relevance_score
|
605
|
+
// * double * dotProduct(embedding_field_path)
|
606
|
+
// Function variables:
|
607
|
+
// `relevance_score`: pre-defined keywords, used for measure relevance
|
608
|
+
// between query and document.
|
609
|
+
// `embedding_field_path`: the document embedding field
|
610
|
+
// used with query embedding vector.
|
611
|
+
// `dotProduct`: embedding function between embedding_field_path and query
|
612
|
+
// embedding vector.
|
613
|
+
//
|
614
|
+
// Example ranking expression:
|
615
|
+
// If document has an embedding field doc_embedding, the ranking expression
|
616
|
+
// could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`.
|
617
|
+
string ranking_expression = 26;
|
618
|
+
|
619
|
+
// Whether to turn on safe search. This is only supported for
|
620
|
+
// website search.
|
621
|
+
bool safe_search = 20;
|
622
|
+
|
623
|
+
// The user labels applied to a resource must meet the following requirements:
|
624
|
+
//
|
625
|
+
// * Each resource can have multiple labels, up to a maximum of 64.
|
626
|
+
// * Each label must be a key-value pair.
|
627
|
+
// * Keys have a minimum length of 1 character and a maximum length of 63
|
628
|
+
// characters and cannot be empty. Values can be empty and have a maximum
|
629
|
+
// length of 63 characters.
|
630
|
+
// * Keys and values can contain only lowercase letters, numeric characters,
|
631
|
+
// underscores, and dashes. All characters must use UTF-8 encoding, and
|
632
|
+
// international characters are allowed.
|
633
|
+
// * The key portion of a label must be unique. However, you can use the same
|
634
|
+
// key with multiple resources.
|
635
|
+
// * Keys must start with a lowercase letter or international character.
|
636
|
+
//
|
637
|
+
// See [Google Cloud
|
638
|
+
// Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements)
|
639
|
+
// for more details.
|
640
|
+
map<string, string> user_labels = 22;
|
641
|
+
}
|
642
|
+
|
643
|
+
// Response message for
|
644
|
+
// [SearchService.Search][google.cloud.discoveryengine.v1alpha.SearchService.Search]
|
645
|
+
// method.
|
646
|
+
message SearchResponse {
|
647
|
+
// Represents the search results.
|
648
|
+
message SearchResult {
|
649
|
+
// [Document.id][google.cloud.discoveryengine.v1alpha.Document.id] of the
|
650
|
+
// searched [Document][google.cloud.discoveryengine.v1alpha.Document].
|
651
|
+
string id = 1;
|
652
|
+
|
653
|
+
// The document data snippet in the search response. Only fields that are
|
654
|
+
// marked as retrievable are populated.
|
655
|
+
Document document = 2;
|
656
|
+
|
657
|
+
// Google provided available scores.
|
658
|
+
map<string, DoubleList> model_scores = 4;
|
659
|
+
}
|
660
|
+
|
661
|
+
// A facet result.
|
662
|
+
message Facet {
|
663
|
+
// A facet value which contains value names and their count.
|
664
|
+
message FacetValue {
|
665
|
+
// A facet value which contains values.
|
666
|
+
oneof facet_value {
|
667
|
+
// Text value of a facet, such as "Black" for facet "colors".
|
668
|
+
string value = 1;
|
669
|
+
|
670
|
+
// Interval value for a facet, such as [10, 20) for facet "price". It
|
671
|
+
// matches
|
672
|
+
// [SearchRequest.FacetSpec.FacetKey.intervals][google.cloud.discoveryengine.v1alpha.SearchRequest.FacetSpec.FacetKey.intervals].
|
673
|
+
Interval interval = 2;
|
674
|
+
}
|
675
|
+
|
676
|
+
// Number of items that have this facet value.
|
677
|
+
int64 count = 3;
|
678
|
+
}
|
679
|
+
|
680
|
+
// The key for this facet. E.g., "colors" or "price". It matches
|
681
|
+
// [SearchRequest.FacetSpec.FacetKey.key][google.cloud.discoveryengine.v1alpha.SearchRequest.FacetSpec.FacetKey.key].
|
682
|
+
string key = 1;
|
683
|
+
|
684
|
+
// The facet values for this field.
|
685
|
+
repeated FacetValue values = 2;
|
686
|
+
|
687
|
+
// Whether the facet is dynamically generated.
|
688
|
+
bool dynamic_facet = 3;
|
689
|
+
}
|
690
|
+
|
691
|
+
// Guided search result. The guided search helps user to refine the search
|
692
|
+
// results and narrow down to the real needs from a broaded search results.
|
693
|
+
message GuidedSearchResult {
|
694
|
+
// Useful attribute for search result refinements.
|
695
|
+
message RefinementAttribute {
|
696
|
+
// Attribute key used to refine the results e.g. 'movie_type'.
|
697
|
+
string attribute_key = 1;
|
698
|
+
|
699
|
+
// Attribute value used to refine the results e.g. 'drama'.
|
700
|
+
string attribute_value = 2;
|
701
|
+
}
|
702
|
+
|
703
|
+
// A list of ranked refinement attributes.
|
704
|
+
repeated RefinementAttribute refinement_attributes = 1;
|
705
|
+
|
706
|
+
// Suggested follow-up questions.
|
707
|
+
repeated string follow_up_questions = 2;
|
708
|
+
}
|
709
|
+
|
710
|
+
// Summary of the top N search result specified by the summary spec.
|
711
|
+
message Summary {
|
712
|
+
// Safety Attribute categories and their associated confidence scores.
|
713
|
+
message SafetyAttributes {
|
714
|
+
// The display names of Safety Attribute categories associated with the
|
715
|
+
// generated content. Order matches the Scores.
|
716
|
+
repeated string categories = 1;
|
717
|
+
|
718
|
+
// The confidence scores of the each category, higher
|
719
|
+
// value means higher confidence. Order matches the Categories.
|
720
|
+
repeated float scores = 2;
|
721
|
+
}
|
722
|
+
|
723
|
+
// An Enum for summary-skipped reasons.
|
724
|
+
enum SummarySkippedReason {
|
725
|
+
// Default value. The summary skipped reason is not specified.
|
726
|
+
SUMMARY_SKIPPED_REASON_UNSPECIFIED = 0;
|
727
|
+
|
728
|
+
// The adversarial query ignored case.
|
729
|
+
//
|
730
|
+
// Only populated when
|
731
|
+
// [SummarySpec.ignore_adversarial_query][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SummarySpec.ignore_adversarial_query]
|
732
|
+
// is set to `true`.
|
733
|
+
ADVERSARIAL_QUERY_IGNORED = 1;
|
734
|
+
|
735
|
+
// The non-summary seeking query ignored case.
|
736
|
+
//
|
737
|
+
// Only populated when
|
738
|
+
// [SummarySpec.ignore_non_summary_seeking_query][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.SummarySpec.ignore_non_summary_seeking_query]
|
739
|
+
// is set to `true`.
|
740
|
+
NON_SUMMARY_SEEKING_QUERY_IGNORED = 2;
|
741
|
+
|
742
|
+
// The out-of-domain query ignored case.
|
743
|
+
//
|
744
|
+
// Google skips the summary if there are no high-relevance search results.
|
745
|
+
// For example, the data store contains facts about company A but the
|
746
|
+
// user query is asking questions about company B.
|
747
|
+
OUT_OF_DOMAIN_QUERY_IGNORED = 3;
|
748
|
+
|
749
|
+
// The potential policy violation case.
|
750
|
+
//
|
751
|
+
// Google skips the summary if there is a potential policy violation
|
752
|
+
// detected. This includes content that may be violent or toxic.
|
753
|
+
POTENTIAL_POLICY_VIOLATION = 4;
|
754
|
+
|
755
|
+
// The LLM addon not enabled case.
|
756
|
+
//
|
757
|
+
// Google skips the summary if the LLM addon is not enabled.
|
758
|
+
LLM_ADDON_NOT_ENABLED = 5;
|
759
|
+
}
|
760
|
+
|
761
|
+
// The summary content.
|
762
|
+
string summary_text = 1;
|
763
|
+
|
764
|
+
// Additional summary-skipped reasons. This provides the reason for ignored
|
765
|
+
// cases. If nothing is skipped, this field is not set.
|
766
|
+
repeated SummarySkippedReason summary_skipped_reasons = 2;
|
767
|
+
|
768
|
+
// A collection of Safety Attribute categories and their associated
|
769
|
+
// confidence scores.
|
770
|
+
SafetyAttributes safety_attributes = 3;
|
771
|
+
}
|
772
|
+
|
773
|
+
// Debug information specifically related to forward geocoding issues arising
|
774
|
+
// from Geolocation Search.
|
775
|
+
message GeoSearchDebugInfo {
|
776
|
+
// The address from which forward geocoding ingestion produced issues.
|
777
|
+
string original_address_query = 1;
|
778
|
+
|
779
|
+
// The error produced.
|
780
|
+
string error_message = 2;
|
781
|
+
}
|
782
|
+
|
783
|
+
// Information describing query expansion including whether expansion has
|
784
|
+
// occurred.
|
785
|
+
message QueryExpansionInfo {
|
786
|
+
// Bool describing whether query expansion has occurred.
|
787
|
+
bool expanded_query = 1;
|
788
|
+
|
789
|
+
// Number of pinned results. This field will only be set when expansion
|
790
|
+
// happens and
|
791
|
+
// [SearchRequest.QueryExpansionSpec.pin_unexpanded_results][google.cloud.discoveryengine.v1alpha.SearchRequest.QueryExpansionSpec.pin_unexpanded_results]
|
792
|
+
// is set to true.
|
793
|
+
int64 pinned_result_count = 2;
|
794
|
+
}
|
795
|
+
|
796
|
+
// A list of matched documents. The order represents the ranking.
|
797
|
+
repeated SearchResult results = 1;
|
798
|
+
|
799
|
+
// Results of facets requested by user.
|
800
|
+
repeated Facet facets = 2;
|
801
|
+
|
802
|
+
// Guided search result.
|
803
|
+
GuidedSearchResult guided_search_result = 8;
|
804
|
+
|
805
|
+
// The estimated total count of matched items irrespective of pagination. The
|
806
|
+
// count of
|
807
|
+
// [results][google.cloud.discoveryengine.v1alpha.SearchResponse.results]
|
808
|
+
// returned by pagination may be less than the
|
809
|
+
// [total_size][google.cloud.discoveryengine.v1alpha.SearchResponse.total_size]
|
810
|
+
// that matches.
|
811
|
+
int32 total_size = 3;
|
812
|
+
|
813
|
+
// A unique search token. This should be included in the
|
814
|
+
// [UserEvent][google.cloud.discoveryengine.v1alpha.UserEvent] logs resulting
|
815
|
+
// from this search, which enables accurate attribution of search model
|
816
|
+
// performance.
|
817
|
+
string attribution_token = 4;
|
818
|
+
|
819
|
+
// The URI of a customer-defined redirect page. If redirect action is
|
820
|
+
// triggered, no search is performed, and only
|
821
|
+
// [redirect_uri][google.cloud.discoveryengine.v1alpha.SearchResponse.redirect_uri]
|
822
|
+
// and
|
823
|
+
// [attribution_token][google.cloud.discoveryengine.v1alpha.SearchResponse.attribution_token]
|
824
|
+
// are set in the response.
|
825
|
+
string redirect_uri = 12;
|
826
|
+
|
827
|
+
// A token that can be sent as
|
828
|
+
// [SearchRequest.page_token][google.cloud.discoveryengine.v1alpha.SearchRequest.page_token]
|
829
|
+
// to retrieve the next page. If this field is omitted, there are no
|
830
|
+
// subsequent pages.
|
831
|
+
string next_page_token = 5;
|
832
|
+
|
833
|
+
// Contains the spell corrected query, if found. If the spell correction type
|
834
|
+
// is AUTOMATIC, then the search results are based on corrected_query.
|
835
|
+
// Otherwise the original query is used for search.
|
836
|
+
string corrected_query = 7;
|
837
|
+
|
838
|
+
// A summary as part of the search results.
|
839
|
+
// This field is only returned if
|
840
|
+
// [SearchRequest.ContentSearchSpec.summary_spec][google.cloud.discoveryengine.v1alpha.SearchRequest.ContentSearchSpec.summary_spec]
|
841
|
+
// is set.
|
842
|
+
Summary summary = 9;
|
843
|
+
|
844
|
+
// Controls applied as part of the Control service.
|
845
|
+
repeated string applied_controls = 10;
|
846
|
+
|
847
|
+
repeated GeoSearchDebugInfo geo_search_debug_info = 16;
|
848
|
+
|
849
|
+
// Query expansion information for the returned results.
|
850
|
+
QueryExpansionInfo query_expansion_info = 14;
|
851
|
+
}
|