searchDocumentChunks method
Searches for developer knowledge across Google's developer documentation.
Returns DocumentChunks based on the user's query. There may be many chunks from the same Document. To retrieve full documents, use DeveloperKnowledge.GetDocument or DeveloperKnowledge.BatchGetDocuments with the DocumentChunk.parent returned in the SearchDocumentChunksResponse.results.
Request parameters:
filter - Optional. Applies a strict filter to the search results. The
expression supports a subset of the syntax described at
https://google.aip.dev/160. While SearchDocumentChunks returns
DocumentChunks, the filter is applied to DocumentChunk.document fields.
Supported fields for filtering: * content_length_bytes (INTEGER): The
length of the Document.content field in bytes. * data_source (STRING):
The source of the document, e.g. docs.cloud.google.com. See
https://developers.google.com/knowledge/reference/corpus-reference for the
complete list of data sources in the corpus. * update_time (TIMESTAMP):
The timestamp of when the document was last meaningfully updated. A
meaningful update is one that changes document's markdown content or
metadata. * uri (STRING): The document URI, e.g.
https://docs.cloud.google.com/bigquery/docs/tables. INTEGER fields
support =, <, <=, >, and >= operators. STRING fields support =
(equals) and != (not equals) operators for exact match on the whole
string. Partial match, prefix match, and regexp match are not supported.
TIMESTAMP fields support =, <, <=, >, and >= operators.
Timestamps must be in RFC-3339 format, e.g., "2025-01-01T00:00:00Z".
Note: Field names must be in snake_case (e.g., data_source). Values on
the right-hand side of filtering expressions must be string literals
enclosed in double quotes (e.g., "docs.cloud.google.com"). You can
combine expressions using AND, OR, and NOT (or -) logical
operators. OR has higher precedence than AND. Use parentheses for
explicit precedence grouping. Examples: * Filter by
Document.content_length_bytes: content_length_bytes < 50000 *
data_source = "docs.cloud.google.com" OR data_source = "firebase.google.com" * data_source != "firebase.google.com" *
update_time < "2024-01-01T00:00:00Z" * update_time >= "2025-01-22T00:00:00Z" AND (data_source = "developer.chrome.com" OR data_source = "web.dev") * uri = "https://docs.cloud.google.com/release-notes" The filter string must
not exceed 500 characters; values longer than 500 characters will result
in an INVALID_ARGUMENT error.
pageSize - Optional. Specifies the maximum number of results to return.
The service may return fewer than this value. If unspecified, at most 5
results will be returned. The maximum value is 100; values above 100 will
be coerced to 100.
pageToken - Optional. Contains a page token, received from a previous
SearchDocumentChunks call. Provide this to retrieve the subsequent page.
query - Required. Provides the raw query string provided by the user,
such as "How to create a Cloud Storage bucket?". The query must not exceed
500 characters; values longer than 500 characters will result in an
INVALID_ARGUMENT error.
$fields - Selector specifying which fields to include in a partial
response.
Completes with a SearchDocumentChunksResponse.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<SearchDocumentChunksResponse> searchDocumentChunks({
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? query,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'query': ?query == null ? null : [query],
'fields': ?$fields == null ? null : [$fields],
};
const url_ = 'v1/documents:searchDocumentChunks';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return SearchDocumentChunksResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}