searchDocumentChunks method

Future<SearchDocumentChunksResponse> searchDocumentChunks({
  1. String? filter,
  2. int? pageSize,
  3. String? pageToken,
  4. String? query,
  5. String? $fields,
})

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>,
  );
}