# Cloud Search API . query

## Instance Methods

Returns the sources Resource.

Close httplib2 connections.

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/).

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/).

### Method Details

`close()`

    Close httplib2 connections.

`search(body=None, x__xgafv=None)`

    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/).

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

    { # The search API request.
        "sortOptions": { # The options for sorting the search results
          "sortOrder": "A String", # Ascending is the default sort order
          "operatorName": "A String", # Name of the operator corresponding to the field to sort on. The corresponding property must be marked as sortable.
        },
        "requestOptions": { # Shared request options for all RPC methods. # Request options, such as the search application and user timezone.
          "timeZone": "A String", # Current user's time zone id, such as "America/Los_Angeles" or "Australia/Sydney". 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.
          "debugOptions": { # Shared request debug options for all cloudsearch RPC methods. # Debug options of the request
            "enableDebugging": True or False, # If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.
          },
          "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". 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'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.
          "searchApplicationId": "A String", # The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).
        },
        "facetOptions": [
          { # Specifies operators to return facet results for. There will be one FacetResult for every source_name/object_type/operator_name combination.
            "operatorName": "A String", # Name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions
            "objectType": "A String", # 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.
            "sourceName": "A String", # Source name to facet on. Format: datasources/{source_id} If empty, all data sources will be used.
            "numFacetBuckets": 42, # Maximum number of facet buckets that should be returned for this facet. Defaults to 10. Maximum value is 100.
          },
        ],
        "start": 42, # Starting index of the results.
        "query": "A String", # The raw query string. See supported search operators in the [Cloud search Cheat Sheet](https://support.google.com/a/users/answer/9299929)
        "dataSourceRestrictions": [ # The sources to use for querying. If not specified, all data sources from the current search application are used.
          { # Restriction on Datasource.
            "source": { # Defines sources for the suggest/search APIs. # The source of restriction.
              "name": "A String", # Source name for content indexed by the Indexing API.
              "predefinedSource": "A String", # Predefined content source for Google Apps.
            },
            "filterOptions": [ # 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: "objecttype", "type" and "mimetype". For now, schema specific filters cannot be used to filter suggestions.
              { # Filter options to be applied on query.
                "filter": { # 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`.
                  "compositeFilter": {
                    "subFilters": [ # Sub filters.
                      # Object with schema name: Filter
                    ],
                    "logicOperator": "A String", # The logic operator of the sub filter.
                  },
                  "valueFilter": {
                    "operatorName": "A String", # 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.
                    "value": { # Definition of a single value with generic type. # The value to be compared with.
                      "booleanValue": True or False,
                      "doubleValue": 3.14,
                      "dateValue": { # 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.
                        "month": 42, # Month of date. Must be from 1 to 12.
                        "year": 42, # Year of date. Must be from 1 to 9999.
                        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                      },
                      "integerValue": "A String",
                      "stringValue": "A String",
                      "timestampValue": "A String",
                    },
                  },
                },
                "objectType": "A String", # 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.
              },
            ],
          },
        ],
        "pageSize": 42, # Maximum number of search results to return in one page. Valid values are between 1 and 100, inclusive. Default value is 10.
        "queryInterpretationOptions": { # Options to interpret user query. # Options to interpret the user query.
          "disableNlInterpretation": 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.
          "enableVerbatimMode": 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.
        },
      }

      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.
        "results": [ # Results from a search query.
          { # Results containing indexed information for a document.
            "metadata": { # Metadata of a matched search result. # Metadata of the search result.
              "createTime": "A String", # The creation time for this document or object in the search result.
              "owner": { # Object to represent a person. # Owner (usually creator) of the document or object of the search result.
                "photos": [ # A person's read-only photo. A picture shown next to the person's name to help others recognize the person in search results.
                  { # A person's photo.
                    "url": "A String", # The URL of the photo.
                  },
                ],
                "name": "A String", # The resource name of the person to provide information about. See People.get from Google People API.
                "obfuscatedId": "A String", # Obfuscated ID of a person.
                "personNames": [ # The person's name
                  { # A person's name.
                    "displayName": "A String", # The read-only display name formatted according to the locale specified by the viewer's account or the Accept-Language HTTP header.
                  },
                ],
                "emailAddresses": [ # The person's email addresses
                  { # A person's email address.
                    "emailAddress": "A String", # The email address.
                  },
                ],
              },
              "displayOptions": { # Options that specify how to display a structured data search result.
                "objectTypeLabel": "A String", # The display label for the object.
                "metalines": [ # The metalines content to be displayed with the result.
                  { # The collection of fields that make up a displayed line
                    "fields": [
                      { # Display Fields for Search Results
                        "operatorName": "A String", # The operator name of the property.
                        "label": "A String", # The display label for the property.
                        "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`. # The name value pair for the property.
                          "timestampValues": { # List of timestamp values.
                            "values": [
                              "A String",
                            ],
                          },
                          "textValues": { # List of text values.
                            "values": [ # The maximum allowable length for text values is 2048 characters.
                              "A String",
                            ],
                          },
                          "dateValues": { # List of date values.
                            "values": [
                              { # 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.
                                "month": 42, # Month of date. Must be from 1 to 12.
                                "year": 42, # Year of date. Must be from 1 to 9999.
                                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                              },
                            ],
                          },
                          "integerValues": { # List of integer values.
                            "values": [
                              "A String",
                            ],
                          },
                          "htmlValues": { # List of html values.
                            "values": [ # The maximum allowable length for html values is 2048 characters.
                              "A String",
                            ],
                          },
                          "objectValues": { # List of object values.
                            "values": [
                              # Object with schema name: StructuredDataObject
                            ],
                          },
                          "doubleValues": { # List of double values.
                            "values": [
                              3.14,
                            ],
                          },
                          "name": "A String", # 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.
                          "enumValues": { # List of enum values.
                            "values": [ # The maximum allowable length for string values is 32 characters.
                              "A String",
                            ],
                          },
                          "booleanValue": True or False,
                        },
                      },
                    ],
                  },
                ],
              },
              "objectType": "A String", # Object type of the search result.
              "mimeType": "A String", # Mime type of the search result.
              "source": { # Defines sources for the suggest/search APIs. # The named source for the result, such as Gmail.
                "name": "A String", # Source name for content indexed by the Indexing API.
                "predefinedSource": "A String", # Predefined content source for Google Apps.
              },
              "fields": [ # 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`.
                  "timestampValues": { # List of timestamp values.
                    "values": [
                      "A String",
                    ],
                  },
                  "textValues": { # List of text values.
                    "values": [ # The maximum allowable length for text values is 2048 characters.
                      "A String",
                    ],
                  },
                  "dateValues": { # List of date values.
                    "values": [
                      { # 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.
                        "month": 42, # Month of date. Must be from 1 to 12.
                        "year": 42, # Year of date. Must be from 1 to 9999.
                        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                      },
                    ],
                  },
                  "integerValues": { # List of integer values.
                    "values": [
                      "A String",
                    ],
                  },
                  "htmlValues": { # List of html values.
                    "values": [ # The maximum allowable length for html values is 2048 characters.
                      "A String",
                    ],
                  },
                  "objectValues": { # List of object values.
                    "values": [
                      # Object with schema name: StructuredDataObject
                    ],
                  },
                  "doubleValues": { # List of double values.
                    "values": [
                      3.14,
                    ],
                  },
                  "name": "A String", # 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.
                  "enumValues": { # List of enum values.
                    "values": [ # The maximum allowable length for string values is 32 characters.
                      "A String",
                    ],
                  },
                  "booleanValue": True or False,
                },
              ],
              "updateTime": "A String", # 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.
            },
            "title": "A String", # Title of the search result.
            "snippet": { # Snippet of the search result, which summarizes the content of the resulting page. # The concatenation of all snippets (summaries) available for this result.
              "snippet": "A String", # The snippet of the document. The snippet of the document. May contain escaped HTML character that should be unescaped prior to rendering.
              "matchRanges": [ # The matched ranges in the snippet.
                { # Matched range of a snippet [start, end).
                  "end": 42, # End of the match in the snippet.
                  "start": 42, # Starting position of the match in the snippet.
                },
              ],
            },
            "debugInfo": { # Debugging information about the result. # Debugging information about this search result.
              "formattedDebugInfo": "A String", # General debug info formatted for display.
            },
            "clusteredResults": [ # 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
            ],
            "url": "A String", # The URL of the search result. The URL contains a Google redirect to the actual item. This URL is signed and shouldn't be changed.
          },
        ],
        "resultCounts": { # Result count information # Expanded result count information.
          "sourceResultCounts": [ # Result count information for each source with results.
            { # Per source result count information.
              "resultCountEstimate": "A String", # The estimated result count for this source.
              "hasMoreResults": True or False, # Whether there are more search results for this source.
              "source": { # Defines sources for the suggest/search APIs. # The source the result count information is associated with.
                "name": "A String", # Source name for content indexed by the Indexing API.
                "predefinedSource": "A String", # Predefined content source for Google Apps.
              },
              "resultCountExact": "A String", # The exact result count for this source.
            },
          ],
        },
        "structuredResults": [ # 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.
            "person": { # Object to represent a person. # Representation of a person
              "photos": [ # A person's read-only photo. A picture shown next to the person's name to help others recognize the person in search results.
                { # A person's photo.
                  "url": "A String", # The URL of the photo.
                },
              ],
              "name": "A String", # The resource name of the person to provide information about. See People.get from Google People API.
              "obfuscatedId": "A String", # Obfuscated ID of a person.
              "personNames": [ # The person's name
                { # A person's name.
                  "displayName": "A String", # The read-only display name formatted according to the locale specified by the viewer's account or the Accept-Language HTTP header.
                },
              ],
              "emailAddresses": [ # The person's email addresses
                { # A person's email address.
                  "emailAddress": "A String", # The email address.
                },
              ],
            },
          },
        ],
        "resultCountExact": "A String", # The exact result count for this query.
        "hasMoreResults": True or False, # Whether there are more search results matching the query.
        "spellResults": [ # Suggested spelling for the query.
          {
            "suggestedQuery": "A String", # The suggested spelling of the query.
          },
        ],
        "resultCountEstimate": "A String", # The estimated result count for this query.
        "errorInfo": { # Error information about the response. # Error information about the response.
          "errorMessages": [
            { # Error message per source response.
              "errorMessage": "A String",
              "source": { # Defines sources for the suggest/search APIs.
                "name": "A String", # Source name for content indexed by the Indexing API.
                "predefinedSource": "A String", # Predefined content source for Google Apps.
              },
            },
          ],
        },
        "facetResults": [ # Repeated facet results.
          { # Source specific facet response
            "operatorName": "A String", # Name of the operator chosen for faceting. @see cloudsearch.SchemaPropertyOptions
            "buckets": [ # 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.
                "percentage": 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.
                "value": { # Definition of a single value with generic type.
                  "booleanValue": True or False,
                  "doubleValue": 3.14,
                  "dateValue": { # 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.
                    "month": 42, # Month of date. Must be from 1 to 12.
                    "year": 42, # Year of date. Must be from 1 to 9999.
                    "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                  },
                  "integerValue": "A String",
                  "stringValue": "A String",
                  "timestampValue": "A String",
                },
                "count": 42, # Number of results that match the bucket value. Counts are only returned for searches when count accuracy is ensured. Can be empty.
              },
            ],
            "sourceName": "A String", # Source name for which facet results are returned. Will not be empty.
            "objectType": "A String", # Object type for which facet results are returned. Can be empty.
          },
        ],
        "debugInfo": { # Debugging information about the response. # Debugging information about the response.
          "formattedDebugInfo": "A String", # General debug info formatted for display.
        },
        "queryInterpretation": { # Query interpretation result for user query. Empty if query interpretation is disabled.
          "interpretationType": "A String",
          "interpretedQuery": "A String", # The interpretation of the query used in search. For example, queries with natural language intent like "email from john" will be interpreted as "from:john source:mail". This field will not be filled when the reason is NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY.
          "reason": "A String", # The reason for interpretation of the query. This field will not be UNSPECIFIED if the interpretation type is not NONE.
        },
      }

`suggest(body=None, x__xgafv=None)`

    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/).

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

    { # Request of suggest API.
        "requestOptions": { # Shared request options for all RPC methods. # Request options, such as the search application and user timezone.
          "timeZone": "A String", # Current user's time zone id, such as "America/Los_Angeles" or "Australia/Sydney". 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.
          "debugOptions": { # Shared request debug options for all cloudsearch RPC methods. # Debug options of the request
            "enableDebugging": True or False, # If you are asked by Google to help with debugging, set this field. Otherwise, ignore this field.
          },
          "languageCode": "A String", # The BCP-47 language code, such as "en-US" or "sr-Latn". 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'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.
          "searchApplicationId": "A String", # The ID generated when you create a search application using the [admin console](https://support.google.com/a/answer/9043922).
        },
        "dataSourceRestrictions": [ # 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.
            "source": { # Defines sources for the suggest/search APIs. # The source of restriction.
              "name": "A String", # Source name for content indexed by the Indexing API.
              "predefinedSource": "A String", # Predefined content source for Google Apps.
            },
            "filterOptions": [ # 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: "objecttype", "type" and "mimetype". For now, schema specific filters cannot be used to filter suggestions.
              { # Filter options to be applied on query.
                "filter": { # 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`.
                  "compositeFilter": {
                    "subFilters": [ # Sub filters.
                      # Object with schema name: Filter
                    ],
                    "logicOperator": "A String", # The logic operator of the sub filter.
                  },
                  "valueFilter": {
                    "operatorName": "A String", # 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.
                    "value": { # Definition of a single value with generic type. # The value to be compared with.
                      "booleanValue": True or False,
                      "doubleValue": 3.14,
                      "dateValue": { # 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.
                        "month": 42, # Month of date. Must be from 1 to 12.
                        "year": 42, # Year of date. Must be from 1 to 9999.
                        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                      },
                      "integerValue": "A String",
                      "stringValue": "A String",
                      "timestampValue": "A String",
                    },
                  },
                },
                "objectType": "A String", # 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.
              },
            ],
          },
        ],
        "query": "A String", # Partial query for which autocomplete suggestions will be shown. For example, if the query is "sea", then the server might return "season", "search", "seagull" and so on.
      }

      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.
        "suggestResults": [ # List of suggestions.
          { # One suggestion result.
            "source": { # Defines sources for the suggest/search APIs. # The source of the suggestion.
              "name": "A String", # Source name for content indexed by the Indexing API.
              "predefinedSource": "A String", # Predefined content source for Google Apps.
            },
            "peopleSuggestion": { # 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.
              "person": { # Object to represent a person. # Suggested person. All fields of the person object might not be populated.
                "photos": [ # A person's read-only photo. A picture shown next to the person's name to help others recognize the person in search results.
                  { # A person's photo.
                    "url": "A String", # The URL of the photo.
                  },
                ],
                "name": "A String", # The resource name of the person to provide information about. See People.get from Google People API.
                "obfuscatedId": "A String", # Obfuscated ID of a person.
                "personNames": [ # The person's name
                  { # A person's name.
                    "displayName": "A String", # The read-only display name formatted according to the locale specified by the viewer's account or the Accept-Language HTTP header.
                  },
                ],
                "emailAddresses": [ # The person's email addresses
                  { # A person's email address.
                    "emailAddress": "A String", # The email address.
                  },
                ],
              },
            },
            "suggestedQuery": "A String", # The suggested query that will be used for search, when the user clicks on the suggestion
            "querySuggestion": { # 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.
            },
          },
        ],
      }