<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="cloudsearch_v1.html">Cloud Search API</a> . <a href="cloudsearch_v1.query.html">query</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="cloudsearch_v1.query.sources.html">sources()</a></code>
</p>
<p class="firstline">Returns the sources Resource.</p>

<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#search">search(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">The Cloud Search Query API provides the search method, which returns the most relevant results from a user query. The results can come from G Suite Apps, such as Gmail or Google Drive, or they can come from data that you have indexed from a third party. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [G Suite domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).</p>
<p class="toc_element">
  <code><a href="#suggest">suggest(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Provides suggestions for autocompleting the query. **Note:** This API requires a standard end user account to execute. A service account can't perform Query API requests directly; to use a service account to perform queries, set up [G Suite domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="search">search(body=None, x__xgafv=None)</code>
  <pre>The Cloud Search Query API provides the search method, which returns the most relevant results from a user query. The results can come from G Suite Apps, such as Gmail or Google Drive, or they can come from data that you have indexed from a third party. **Note:** This API requires a standard end user account to execute. A service account can&#x27;t perform Query API requests directly; to use a service account to perform queries, set up [G Suite domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).

Args:
  body: object, The request body.
    The object takes the form of:

{ # The search API request.
    &quot;queryInterpretationOptions&quot;: { # Options to interpret user query. # Options to interpret the user query.
      &quot;disableNlInterpretation&quot;: True or False, # Flag to disable natural language (NL) interpretation of queries. Default is false, Set to true to disable natural language interpretation. NL interpretation only applies to predefined datasources.
      &quot;enableVerbatimMode&quot;: True or False, # Enable this flag to turn off all internal optimizations like natural language (NL) interpretation of queries, supplemental result retrieval, and usage of synonyms including custom ones. Nl interpretation will be disabled if either one of the two flags is true.
    },
    &quot;pageSize&quot;: 42, # Maximum number of search results to return in one page. Valid values are between 1 and 100, inclusive. Default value is 10. Minimum value is 50 when results beyond 2000 are requested.
    &quot;sortOptions&quot;: { # The options for sorting the search results
      &quot;sortOrder&quot;: &quot;A String&quot;, # Ascending is the default sort order
      &quot;operatorName&quot;: &quot;A String&quot;, # Name of the operator corresponding to the field to sort on. The corresponding property must be marked as sortable.
    },
    &quot;requestOptions&quot;: { # Shared request options for all RPC methods. # Request options, such as the search application and user timezone.
      &quot;timeZone&quot;: &quot;A String&quot;, # Current user&#x27;s time zone id, such as &quot;America/Los_Angeles&quot; or &quot;Australia/Sydney&quot;. These IDs are defined by [Unicode Common Locale Data Repository (CLDR)](http://cldr.unicode.org/) project, and currently available in the file [timezone.xml](http://unicode.org/repos/cldr/trunk/common/bcp47/timezone.xml). This field is used to correctly interpret date and time queries. If this field is not specified, the default time zone (UTC) is used.
      &quot;debugOptions&quot;: { # Shared request debug options for all cloudsearch RPC methods. # Debug options of the request
        &quot;enableDebugging&quot;: True or False, # If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.
      },
      &quot;searchApplicationId&quot;: &quot;A String&quot;, # The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).
      &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user&#x27;s language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The suggest API does not use this parameter. Instead, suggest autocompletes only based on characters in the query.
    },
    &quot;facetOptions&quot;: [
      { # Specifies operators to return facet results for. There will be one FacetResult for every source_name/object_type/operator_name combination.
        &quot;operatorName&quot;: &quot;A String&quot;, # Name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions
        &quot;numFacetBuckets&quot;: 42, # Maximum number of facet buckets that should be returned for this facet. Defaults to 10. Maximum value is 100.
        &quot;objectType&quot;: &quot;A String&quot;, # If object_type is set, only those objects of that type will be used to compute facets. If empty, then all objects will be used to compute facets.
        &quot;sourceName&quot;: &quot;A String&quot;, # Source name to facet on. Format: datasources/{source_id} If empty, all data sources will be used.
      },
    ],
    &quot;dataSourceRestrictions&quot;: [ # The sources to use for querying. If not specified, all data sources from the current search application are used.
      { # Restriction on Datasource.
        &quot;source&quot;: { # Defines sources for the suggest/search APIs. # The source of restriction.
          &quot;name&quot;: &quot;A String&quot;, # Source name for content indexed by the Indexing API.
          &quot;predefinedSource&quot;: &quot;A String&quot;, # Predefined content source for Google Apps.
        },
        &quot;filterOptions&quot;: [ # Filter options restricting the results. If multiple filters are present, they are grouped by object type before joining. Filters with the same object type are joined conjunctively, then the resulting expressions are joined disjunctively. The maximum number of elements is 20. NOTE: Suggest API supports only few filters at the moment: &quot;objecttype&quot;, &quot;type&quot; and &quot;mimetype&quot;. For now, schema specific filters cannot be used to filter suggestions.
          { # Filter options to be applied on query.
            &quot;objectType&quot;: &quot;A String&quot;, # If object_type is set, only objects of that type are returned. This should correspond to the name of the object that was registered within the definition of schema. The maximum length is 256 characters.
            &quot;filter&quot;: { # A generic way of expressing filters in a query, which supports two approaches: **1. Setting a ValueFilter.** The name must match an operator_name defined in the schema for your data source. **2. Setting a CompositeFilter.** The filters are evaluated using the logical operator. The top-level operators can only be either an AND or a NOT. AND can appear only at the top-most level. OR can appear only under a top-level AND. # Generic filter to restrict the search, such as `lang:en`, `site:xyz`.
              &quot;valueFilter&quot;: {
                &quot;operatorName&quot;: &quot;A String&quot;, # The `operator_name` applied to the query, such as *price_greater_than*. The filter can work against both types of filters defined in the schema for your data source: 1. `operator_name`, where the query filters results by the property that matches the value. 2. `greater_than_operator_name` or `less_than_operator_name` in your schema. The query filters the results for the property values that are greater than or less than the supplied value in the query.
                &quot;value&quot;: { # Definition of a single value with generic type. # The value to be compared with.
                  &quot;integerValue&quot;: &quot;A String&quot;,
                  &quot;timestampValue&quot;: &quot;A String&quot;,
                  &quot;doubleValue&quot;: 3.14,
                  &quot;dateValue&quot;: { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                    &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999.
                    &quot;month&quot;: 42, # Month of date. Must be from 1 to 12.
                    &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                  },
                  &quot;booleanValue&quot;: True or False,
                  &quot;stringValue&quot;: &quot;A String&quot;,
                },
              },
              &quot;compositeFilter&quot;: {
                &quot;logicOperator&quot;: &quot;A String&quot;, # The logic operator of the sub filter.
                &quot;subFilters&quot;: [ # Sub filters.
                  # Object with schema name: Filter
                ],
              },
            },
          },
        ],
      },
    ],
    &quot;query&quot;: &quot;A String&quot;, # The raw query string. See supported search operators in the [Cloud search Cheat Sheet](https://support.google.com/a/users/answer/9299929)
    &quot;start&quot;: 42, # Starting index of the results.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The search API response.
    &quot;hasMoreResults&quot;: True or False, # Whether there are more search results matching the query.
    &quot;resultCountExact&quot;: &quot;A String&quot;, # The exact result count for this query.
    &quot;queryInterpretation&quot;: { # Query interpretation result for user query. Empty if query interpretation is disabled.
      &quot;interpretedQuery&quot;: &quot;A String&quot;, # The interpretation of the query used in search. For example, queries with natural language intent like &quot;email from john&quot; will be interpreted as &quot;from:john source:mail&quot;. This field will not be filled when the reason is NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY.
      &quot;interpretationType&quot;: &quot;A String&quot;,
      &quot;reason&quot;: &quot;A String&quot;, # The reason for interpretation of the query. This field will not be UNSPECIFIED if the interpretation type is not NONE.
    },
    &quot;resultCounts&quot;: { # Result count information # Expanded result count information.
      &quot;sourceResultCounts&quot;: [ # Result count information for each source with results.
        { # Per source result count information.
          &quot;source&quot;: { # Defines sources for the suggest/search APIs. # The source the result count information is associated with.
            &quot;name&quot;: &quot;A String&quot;, # Source name for content indexed by the Indexing API.
            &quot;predefinedSource&quot;: &quot;A String&quot;, # Predefined content source for Google Apps.
          },
          &quot;resultCountExact&quot;: &quot;A String&quot;, # The exact result count for this source.
          &quot;resultCountEstimate&quot;: &quot;A String&quot;, # The estimated result count for this source.
          &quot;hasMoreResults&quot;: True or False, # Whether there are more search results for this source.
        },
      ],
    },
    &quot;debugInfo&quot;: { # Debugging information about the response. # Debugging information about the response.
      &quot;formattedDebugInfo&quot;: &quot;A String&quot;, # General debug info formatted for display.
    },
    &quot;results&quot;: [ # Results from a search query.
      { # Results containing indexed information for a document.
        &quot;clusteredResults&quot;: [ # If source is clustered, provide list of clustered results. There will only be one level of clustered results. If current source is not enabled for clustering, this field will be empty.
          # Object with schema name: SearchResult
        ],
        &quot;debugInfo&quot;: { # Debugging information about the result. # Debugging information about this search result.
          &quot;formattedDebugInfo&quot;: &quot;A String&quot;, # General debug info formatted for display.
        },
        &quot;metadata&quot;: { # Metadata of a matched search result. # Metadata of the search result.
          &quot;displayOptions&quot;: { # Options that specify how to display a structured data search result.
            &quot;metalines&quot;: [ # The metalines content to be displayed with the result.
              { # The collection of fields that make up a displayed line
                &quot;fields&quot;: [
                  { # Display Fields for Search Results
                    &quot;label&quot;: &quot;A String&quot;, # The display label for the property.
                    &quot;property&quot;: { # A typed name-value pair for structured data. The type of the value should be the same as the registered type for the `name` property in the object definition of `objectType`. # The name value pair for the property.
                      &quot;name&quot;: &quot;A String&quot;, # The name of the property. This name should correspond to the name of the property that was registered for object definition in the schema. The maximum allowable length for this property is 256 characters.
                      &quot;integerValues&quot;: { # List of integer values.
                        &quot;values&quot;: [
                          &quot;A String&quot;,
                        ],
                      },
                      &quot;textValues&quot;: { # List of text values.
                        &quot;values&quot;: [ # The maximum allowable length for text values is 2048 characters.
                          &quot;A String&quot;,
                        ],
                      },
                      &quot;objectValues&quot;: { # List of object values.
                        &quot;values&quot;: [
                          # Object with schema name: StructuredDataObject
                        ],
                      },
                      &quot;timestampValues&quot;: { # List of timestamp values.
                        &quot;values&quot;: [
                          &quot;A String&quot;,
                        ],
                      },
                      &quot;dateValues&quot;: { # List of date values.
                        &quot;values&quot;: [
                          { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                            &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999.
                            &quot;month&quot;: 42, # Month of date. Must be from 1 to 12.
                            &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                          },
                        ],
                      },
                      &quot;doubleValues&quot;: { # List of double values.
                        &quot;values&quot;: [
                          3.14,
                        ],
                      },
                      &quot;enumValues&quot;: { # List of enum values.
                        &quot;values&quot;: [ # The maximum allowable length for string values is 32 characters.
                          &quot;A String&quot;,
                        ],
                      },
                      &quot;booleanValue&quot;: True or False,
                      &quot;htmlValues&quot;: { # List of html values.
                        &quot;values&quot;: [ # The maximum allowable length for html values is 2048 characters.
                          &quot;A String&quot;,
                        ],
                      },
                    },
                    &quot;operatorName&quot;: &quot;A String&quot;, # The operator name of the property.
                  },
                ],
              },
            ],
            &quot;objectTypeLabel&quot;: &quot;A String&quot;, # The display label for the object.
          },
          &quot;mimeType&quot;: &quot;A String&quot;, # Mime type of the search result.
          &quot;objectType&quot;: &quot;A String&quot;, # Object type of the search result.
          &quot;owner&quot;: { # Object to represent a person. # Owner (usually creator) of the document or object of the search result.
            &quot;obfuscatedId&quot;: &quot;A String&quot;, # Obfuscated ID of a person.
            &quot;name&quot;: &quot;A String&quot;, # The resource name of the person to provide information about. See People.get from Google People API.
            &quot;photos&quot;: [ # A person&#x27;s read-only photo. A picture shown next to the person&#x27;s name to help others recognize the person in search results.
              { # A person&#x27;s photo.
                &quot;url&quot;: &quot;A String&quot;, # The URL of the photo.
              },
            ],
            &quot;emailAddresses&quot;: [ # The person&#x27;s email addresses
              { # A person&#x27;s email address.
                &quot;emailAddress&quot;: &quot;A String&quot;, # The email address.
              },
            ],
            &quot;personNames&quot;: [ # The person&#x27;s name
              { # A person&#x27;s name.
                &quot;displayName&quot;: &quot;A String&quot;, # The read-only display name formatted according to the locale specified by the viewer&#x27;s account or the Accept-Language HTTP header.
              },
            ],
          },
          &quot;source&quot;: { # Defines sources for the suggest/search APIs. # The named source for the result, such as Gmail.
            &quot;name&quot;: &quot;A String&quot;, # Source name for content indexed by the Indexing API.
            &quot;predefinedSource&quot;: &quot;A String&quot;, # Predefined content source for Google Apps.
          },
          &quot;updateTime&quot;: &quot;A String&quot;, # The last modified date for the object in the search result. If not set in the item, the value returned here is empty. When `updateTime` is used for calculating freshness and is not set, this value defaults to 2 years from the current time.
          &quot;fields&quot;: [ # Indexed fields in structured data, returned as a generic named property.
            { # A typed name-value pair for structured data. The type of the value should be the same as the registered type for the `name` property in the object definition of `objectType`.
              &quot;name&quot;: &quot;A String&quot;, # The name of the property. This name should correspond to the name of the property that was registered for object definition in the schema. The maximum allowable length for this property is 256 characters.
              &quot;integerValues&quot;: { # List of integer values.
                &quot;values&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;textValues&quot;: { # List of text values.
                &quot;values&quot;: [ # The maximum allowable length for text values is 2048 characters.
                  &quot;A String&quot;,
                ],
              },
              &quot;objectValues&quot;: { # List of object values.
                &quot;values&quot;: [
                  # Object with schema name: StructuredDataObject
                ],
              },
              &quot;timestampValues&quot;: { # List of timestamp values.
                &quot;values&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;dateValues&quot;: { # List of date values.
                &quot;values&quot;: [
                  { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                    &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999.
                    &quot;month&quot;: 42, # Month of date. Must be from 1 to 12.
                    &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                  },
                ],
              },
              &quot;doubleValues&quot;: { # List of double values.
                &quot;values&quot;: [
                  3.14,
                ],
              },
              &quot;enumValues&quot;: { # List of enum values.
                &quot;values&quot;: [ # The maximum allowable length for string values is 32 characters.
                  &quot;A String&quot;,
                ],
              },
              &quot;booleanValue&quot;: True or False,
              &quot;htmlValues&quot;: { # List of html values.
                &quot;values&quot;: [ # The maximum allowable length for html values is 2048 characters.
                  &quot;A String&quot;,
                ],
              },
            },
          ],
          &quot;createTime&quot;: &quot;A String&quot;, # The creation time for this document or object in the search result.
        },
        &quot;url&quot;: &quot;A String&quot;, # The URL of the search result. The URL contains a Google redirect to the actual item. This URL is signed and shouldn&#x27;t be changed.
        &quot;snippet&quot;: { # Snippet of the search result, which summarizes the content of the resulting page. # The concatenation of all snippets (summaries) available for this result.
          &quot;matchRanges&quot;: [ # The matched ranges in the snippet.
            { # Matched range of a snippet [start, end).
              &quot;end&quot;: 42, # End of the match in the snippet.
              &quot;start&quot;: 42, # Starting position of the match in the snippet.
            },
          ],
          &quot;snippet&quot;: &quot;A String&quot;, # The snippet of the document. The snippet of the document. May contain escaped HTML character that should be unescaped prior to rendering.
        },
        &quot;title&quot;: &quot;A String&quot;, # Title of the search result.
      },
    ],
    &quot;errorInfo&quot;: { # Error information about the response. # Error information about the response.
      &quot;errorMessages&quot;: [
        { # Error message per source response.
          &quot;errorMessage&quot;: &quot;A String&quot;,
          &quot;source&quot;: { # Defines sources for the suggest/search APIs.
            &quot;name&quot;: &quot;A String&quot;, # Source name for content indexed by the Indexing API.
            &quot;predefinedSource&quot;: &quot;A String&quot;, # Predefined content source for Google Apps.
          },
        },
      ],
    },
    &quot;resultCountEstimate&quot;: &quot;A String&quot;, # The estimated result count for this query.
    &quot;facetResults&quot;: [ # Repeated facet results.
      { # Source specific facet response
        &quot;buckets&quot;: [ # FacetBuckets for values in response containing at least a single result.
          { # A bucket in a facet is the basic unit of operation. A bucket can comprise either a single value OR a contiguous range of values, depending on the type of the field bucketed. FacetBucket is currently used only for returning the response object.
            &quot;count&quot;: 42, # Number of results that match the bucket value. Counts are only returned for searches when count accuracy is ensured. Can be empty.
            &quot;value&quot;: { # Definition of a single value with generic type.
              &quot;integerValue&quot;: &quot;A String&quot;,
              &quot;timestampValue&quot;: &quot;A String&quot;,
              &quot;doubleValue&quot;: 3.14,
              &quot;dateValue&quot;: { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999.
                &quot;month&quot;: 42, # Month of date. Must be from 1 to 12.
                &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
              },
              &quot;booleanValue&quot;: True or False,
              &quot;stringValue&quot;: &quot;A String&quot;,
            },
            &quot;percentage&quot;: 42, # Percent of results that match the bucket value. The returned value is between (0-100], and is rounded down to an integer if fractional. If the value is not explicitly returned, it represents a percentage value that rounds to 0. Percentages are returned for all searches, but are an estimate. Because percentages are always returned, you should render percentages instead of counts.
          },
        ],
        &quot;operatorName&quot;: &quot;A String&quot;, # Name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions
        &quot;sourceName&quot;: &quot;A String&quot;, # Source name for which facet results are returned. Will not be empty.
        &quot;objectType&quot;: &quot;A String&quot;, # Object type for which facet results are returned. Can be empty.
      },
    ],
    &quot;spellResults&quot;: [ # Suggested spelling for the query.
      {
        &quot;suggestedQuery&quot;: &quot;A String&quot;, # The suggested spelling of the query.
      },
    ],
    &quot;structuredResults&quot;: [ # Structured results for the user query. These results are not counted against the page_size.
      { # Structured results that are returned as part of search request.
        &quot;person&quot;: { # Object to represent a person. # Representation of a person
          &quot;obfuscatedId&quot;: &quot;A String&quot;, # Obfuscated ID of a person.
          &quot;name&quot;: &quot;A String&quot;, # The resource name of the person to provide information about. See People.get from Google People API.
          &quot;photos&quot;: [ # A person&#x27;s read-only photo. A picture shown next to the person&#x27;s name to help others recognize the person in search results.
            { # A person&#x27;s photo.
              &quot;url&quot;: &quot;A String&quot;, # The URL of the photo.
            },
          ],
          &quot;emailAddresses&quot;: [ # The person&#x27;s email addresses
            { # A person&#x27;s email address.
              &quot;emailAddress&quot;: &quot;A String&quot;, # The email address.
            },
          ],
          &quot;personNames&quot;: [ # The person&#x27;s name
            { # A person&#x27;s name.
              &quot;displayName&quot;: &quot;A String&quot;, # The read-only display name formatted according to the locale specified by the viewer&#x27;s account or the Accept-Language HTTP header.
            },
          ],
        },
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="suggest">suggest(body=None, x__xgafv=None)</code>
  <pre>Provides suggestions for autocompleting the query. **Note:** This API requires a standard end user account to execute. A service account can&#x27;t perform Query API requests directly; to use a service account to perform queries, set up [G Suite domain-wide delegation of authority](https://developers.google.com/cloud-search/docs/guides/delegation/).

Args:
  body: object, The request body.
    The object takes the form of:

{ # Request of suggest API.
    &quot;dataSourceRestrictions&quot;: [ # The sources to use for suggestions. If not specified, the data sources are taken from the current search application. NOTE: Suggestions are supported only for third party data sources and people (i.e. PredefinedSource.PERSON).
      { # Restriction on Datasource.
        &quot;source&quot;: { # Defines sources for the suggest/search APIs. # The source of restriction.
          &quot;name&quot;: &quot;A String&quot;, # Source name for content indexed by the Indexing API.
          &quot;predefinedSource&quot;: &quot;A String&quot;, # Predefined content source for Google Apps.
        },
        &quot;filterOptions&quot;: [ # Filter options restricting the results. If multiple filters are present, they are grouped by object type before joining. Filters with the same object type are joined conjunctively, then the resulting expressions are joined disjunctively. The maximum number of elements is 20. NOTE: Suggest API supports only few filters at the moment: &quot;objecttype&quot;, &quot;type&quot; and &quot;mimetype&quot;. For now, schema specific filters cannot be used to filter suggestions.
          { # Filter options to be applied on query.
            &quot;objectType&quot;: &quot;A String&quot;, # If object_type is set, only objects of that type are returned. This should correspond to the name of the object that was registered within the definition of schema. The maximum length is 256 characters.
            &quot;filter&quot;: { # A generic way of expressing filters in a query, which supports two approaches: **1. Setting a ValueFilter.** The name must match an operator_name defined in the schema for your data source. **2. Setting a CompositeFilter.** The filters are evaluated using the logical operator. The top-level operators can only be either an AND or a NOT. AND can appear only at the top-most level. OR can appear only under a top-level AND. # Generic filter to restrict the search, such as `lang:en`, `site:xyz`.
              &quot;valueFilter&quot;: {
                &quot;operatorName&quot;: &quot;A String&quot;, # The `operator_name` applied to the query, such as *price_greater_than*. The filter can work against both types of filters defined in the schema for your data source: 1. `operator_name`, where the query filters results by the property that matches the value. 2. `greater_than_operator_name` or `less_than_operator_name` in your schema. The query filters the results for the property values that are greater than or less than the supplied value in the query.
                &quot;value&quot;: { # Definition of a single value with generic type. # The value to be compared with.
                  &quot;integerValue&quot;: &quot;A String&quot;,
                  &quot;timestampValue&quot;: &quot;A String&quot;,
                  &quot;doubleValue&quot;: 3.14,
                  &quot;dateValue&quot;: { # Represents a whole calendar date, for example a date of birth. The time of day and time zone are either specified elsewhere or are not significant. The date is relative to the [Proleptic Gregorian Calendar](https://en.wikipedia.org/wiki/Proleptic_Gregorian_calendar). The date must be a valid calendar date between the year 1 and 9999.
                    &quot;year&quot;: 42, # Year of date. Must be from 1 to 9999.
                    &quot;month&quot;: 42, # Month of date. Must be from 1 to 12.
                    &quot;day&quot;: 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                  },
                  &quot;booleanValue&quot;: True or False,
                  &quot;stringValue&quot;: &quot;A String&quot;,
                },
              },
              &quot;compositeFilter&quot;: {
                &quot;logicOperator&quot;: &quot;A String&quot;, # The logic operator of the sub filter.
                &quot;subFilters&quot;: [ # Sub filters.
                  # Object with schema name: Filter
                ],
              },
            },
          },
        ],
      },
    ],
    &quot;query&quot;: &quot;A String&quot;, # Partial query for which autocomplete suggestions will be shown. For example, if the query is &quot;sea&quot;, then the server might return &quot;season&quot;, &quot;search&quot;, &quot;seagull&quot; and so on.
    &quot;requestOptions&quot;: { # Shared request options for all RPC methods. # Request options, such as the search application and user timezone.
      &quot;timeZone&quot;: &quot;A String&quot;, # Current user&#x27;s time zone id, such as &quot;America/Los_Angeles&quot; or &quot;Australia/Sydney&quot;. These IDs are defined by [Unicode Common Locale Data Repository (CLDR)](http://cldr.unicode.org/) project, and currently available in the file [timezone.xml](http://unicode.org/repos/cldr/trunk/common/bcp47/timezone.xml). This field is used to correctly interpret date and time queries. If this field is not specified, the default time zone (UTC) is used.
      &quot;debugOptions&quot;: { # Shared request debug options for all cloudsearch RPC methods. # Debug options of the request
        &quot;enableDebugging&quot;: True or False, # If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.
      },
      &quot;searchApplicationId&quot;: &quot;A String&quot;, # The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).
      &quot;languageCode&quot;: &quot;A String&quot;, # The BCP-47 language code, such as &quot;en-US&quot; or &quot;sr-Latn&quot;. For more information, see http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. For translations. Set this field using the language set in browser or for the page. In the event that the user&#x27;s language preference is known, set this field to the known user language. When specified, the documents in search results are biased towards the specified language. The suggest API does not use this parameter. Instead, suggest autocompletes only based on characters in the query.
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response of the suggest API.
    &quot;suggestResults&quot;: [ # List of suggestions.
      { # One suggestion result.
        &quot;source&quot;: { # Defines sources for the suggest/search APIs. # The source of the suggestion.
          &quot;name&quot;: &quot;A String&quot;, # Source name for content indexed by the Indexing API.
          &quot;predefinedSource&quot;: &quot;A String&quot;, # Predefined content source for Google Apps.
        },
        &quot;peopleSuggestion&quot;: { # This field contains information about the person being suggested. # This is present when the suggestion indicates a person. It contains more information about the person - like their email ID, name etc.
          &quot;person&quot;: { # Object to represent a person. # Suggested person. All fields of the person object might not be populated.
            &quot;obfuscatedId&quot;: &quot;A String&quot;, # Obfuscated ID of a person.
            &quot;name&quot;: &quot;A String&quot;, # The resource name of the person to provide information about. See People.get from Google People API.
            &quot;photos&quot;: [ # A person&#x27;s read-only photo. A picture shown next to the person&#x27;s name to help others recognize the person in search results.
              { # A person&#x27;s photo.
                &quot;url&quot;: &quot;A String&quot;, # The URL of the photo.
              },
            ],
            &quot;emailAddresses&quot;: [ # The person&#x27;s email addresses
              { # A person&#x27;s email address.
                &quot;emailAddress&quot;: &quot;A String&quot;, # The email address.
              },
            ],
            &quot;personNames&quot;: [ # The person&#x27;s name
              { # A person&#x27;s name.
                &quot;displayName&quot;: &quot;A String&quot;, # The read-only display name formatted according to the locale specified by the viewer&#x27;s account or the Accept-Language HTTP header.
              },
            ],
          },
        },
        &quot;suggestedQuery&quot;: &quot;A String&quot;, # The suggested query that will be used for search, when the user clicks on the suggestion
        &quot;querySuggestion&quot;: { # This field does not contain anything as of now and is just used as an indicator that the suggest result was a phrase completion. # This field will be present if the suggested query is a word/phrase completion.
        },
      },
    ],
  }</pre>
</div>

</body></html>