# Cloud Search API . query

## Instance Methods

Returns the sources Resource.

The Cloud Search Query API provides the search method, which returns

Provides suggestions for autocompleting the query.

### Method Details

`search(body, 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.

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

    { # The search API request.
        "facetOptions": [
          { # Specifies operators to return facet results for. There will be one
              # FacetResult for every source_name/object_type/operator_name combination.
            "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.
            "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.
          },
        ],
        "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.
        },
        "sortOptions": { # The options for sorting the search results
          "operatorName": "A String", # Name of the operator corresponding to the field to sort on.
              # The corresponding property must be marked as
              # sortable.
          "sortOrder": "A String", # Ascending is the default sort order
        },
        "dataSourceRestrictions": [ # The sources to use for querying. If not specified, all data sources
            # from the current search application are used.
          { # Restriction on Datasource.
            "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 # Generic filter to restrict the search, such as `lang:en`, `site:xyz`.
                    # 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.
                  "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.
                      "timestampValue": "A String",
                      "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.
                        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                        "year": 42, # Year of date. Must be from 1 to 9999.
                      },
                      "stringValue": "A String",
                      "booleanValue": True or False,
                      "integerValue": "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.
              },
            ],
            "source": { # Defines sources for the suggest/search APIs. # The source of restriction.
              "predefinedSource": "A String", # Predefined content source for Google Apps.
              "name": "A String", # Source name for content indexed by the
                  # Indexing API.
            },
          },
        ],
        "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://gsuite.google.com/learning-center/products/cloudsearch/cheat-sheet/)
        "requestOptions": { # Shared request options for all RPC methods. # Request options, such as the search application and user timezone.
          "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.
              #
              # When specified, the documents in search results are biased towards the
              # specified language.
              # Suggest API does not use this parameter. It autocompletes only based on
              # characters in the query.
          "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.
          },
          "searchApplicationId": "A String", # Id of the application created using SearchApplicationsService.
          "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)
        },
      }

      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.
        "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.
                },
              ],
              "emailAddresses": [ # The person's email addresses
                { # A person's email address.
                  "emailAddress": "A String", # The email address.
                },
              ],
              "name": "A String", # The resource name of the person to provide information about.
                  # See
                  # People.get from Google People API.
              "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.
                },
              ],
              "obfuscatedId": "A String", # Obfuscated ID of a person.
            },
          },
        ],
        "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, query "email
              # from john" will be interpreted as "from:john source:mail"
        },
        "debugInfo": { # Debugging information about the response. # Debugging information about the response.
          "formattedDebugInfo": "A String", # General debug info formatted for display.
        },
        "spellResults": [ # Suggested spelling for the query.
          {
            "suggestedQuery": "A String", # The suggested spelling of the query.
          },
        ],
        "results": [ # Results from a search query.
          { # Results containing indexed information for a document.
            "title": "A String", # Title of the search result.
            "debugInfo": { # Debugging information about the result. # Debugging information about this search result.
              "formattedDebugInfo": "A String", # General debug info formatted for display.
            },
            "snippet": { # Snippet of the search result, which summarizes the content of the resulting # The concatenation of all snippets (summaries) available for this result.
                # page.
              "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).
                  "start": 42, # Starting position of the match in the snippet.
                  "end": 42, # End of the match in the snippet.
                },
              ],
            },
            "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.
            "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
            ],
            "metadata": { # Metadata of a matched search result. # Metadata of the search result.
              "mimeType": "A String", # Mime type of the search result.
              "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.
              "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`.
                  "objectValues": { # List of object values.
                    "values": [
                      # Object with schema name: StructuredDataObject
                    ],
                  },
                  "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.
                        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                        "year": 42, # Year of date. Must be from 1 to 9999.
                      },
                    ],
                  },
                  "textValues": { # List of text values.
                    "values": [ # The maximum allowable length for text values is 2048 characters.
                      "A String",
                    ],
                  },
                  "enumValues": { # List of enum values.
                    "values": [ # The maximum allowable length for string values is 32 characters.
                      "A String",
                    ],
                  },
                  "integerValues": { # List of integer values.
                    "values": [
                      "A String",
                    ],
                  },
                  "doubleValues": { # List of double values.
                    "values": [
                      3.14,
                    ],
                  },
                  "htmlValues": { # List of html values.
                    "values": [ # The maximum allowable length for html values is 2048 characters.
                      "A String",
                    ],
                  },
                  "booleanValue": True or False,
                  "timestampValues": { # List of timestamp values.
                    "values": [
                      "A String",
                    ],
                  },
                  "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.
                },
              ],
              "source": { # Defines sources for the suggest/search APIs. # The named source for the result, such as Gmail.
                "predefinedSource": "A String", # Predefined content source for Google Apps.
                "name": "A String", # Source name for content indexed by the
                    # Indexing API.
              },
              "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.
                  },
                ],
                "emailAddresses": [ # The person's email addresses
                  { # A person's email address.
                    "emailAddress": "A String", # The email address.
                  },
                ],
                "name": "A String", # The resource name of the person to provide information about.
                    # See
                    # People.get from Google People API.
                "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.
                  },
                ],
                "obfuscatedId": "A String", # Obfuscated ID of a person.
              },
              "createTime": "A String", # The creation time for this document or object in the search result.
              "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
                        "property": { # A typed name-value pair for structured data.  The type of the value should # The name value pair for the property.
                            # be the same as the registered type for the `name` property in the object
                            # definition of `objectType`.
                          "objectValues": { # List of object values.
                            "values": [
                              # Object with schema name: StructuredDataObject
                            ],
                          },
                          "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.
                                "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                                "year": 42, # Year of date. Must be from 1 to 9999.
                              },
                            ],
                          },
                          "textValues": { # List of text values.
                            "values": [ # The maximum allowable length for text values is 2048 characters.
                              "A String",
                            ],
                          },
                          "enumValues": { # List of enum values.
                            "values": [ # The maximum allowable length for string values is 32 characters.
                              "A String",
                            ],
                          },
                          "integerValues": { # List of integer values.
                            "values": [
                              "A String",
                            ],
                          },
                          "doubleValues": { # List of double values.
                            "values": [
                              3.14,
                            ],
                          },
                          "htmlValues": { # List of html values.
                            "values": [ # The maximum allowable length for html values is 2048 characters.
                              "A String",
                            ],
                          },
                          "booleanValue": True or False,
                          "timestampValues": { # List of timestamp values.
                            "values": [
                              "A String",
                            ],
                          },
                          "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.
                        },
                        "operatorName": "A String", # The operator name of the property.
                        "label": "A String", # The display label for the property.
                      },
                    ],
                  },
                ],
              },
              "objectType": "A String", # Object type of the search result.
            },
          },
        ],
        "resultCounts": { # Result count information # Expanded result count information.
          "sourceResultCounts": [ # Result count information for each source with results.
            { # Per source result count information.
              "source": { # Defines sources for the suggest/search APIs. # The source the result count information is associated with.
                "predefinedSource": "A String", # Predefined content source for Google Apps.
                "name": "A String", # Source name for content indexed by the
                    # Indexing API.
              },
              "resultCountExact": "A String", # The exact result count for this source.
              "hasMoreResults": True or False, # Whether there are more search results for this source.
              "resultCountEstimate": "A String", # The estimated result count for this source.
            },
          ],
        },
        "resultCountEstimate": "A String", # The estimated result count for this query.
        "resultCountExact": "A String", # The exact result count for this query.
        "facetResults": [ # Repeated facet results.
          { # Source specific facet response
            "sourceName": "A String", # Source name for which facet results are returned. Will not be empty.
            "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.
                "count": 42, # Number of results that match the bucket value. Counts are only returned
                    # for searches when count accuracy is ensured. Can be empty.
                "percentage": 42, # Percent of results that match the bucket value. This value is between
                    # (0-100]. 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.
                  "timestampValue": "A String",
                  "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.
                    "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                    "year": 42, # Year of date. Must be from 1 to 9999.
                  },
                  "stringValue": "A String",
                  "booleanValue": True or False,
                  "integerValue": "A String",
                },
              },
            ],
            "operatorName": "A String", # Name of the operator chosen for faceting. @see
                # cloudsearch.SchemaPropertyOptions
            "objectType": "A String", # Object type for which facet results are returned. Can be empty.
          },
        ],
        "errorInfo": { # Error information about the response. # Error information about the response.
          "errorMessages": [
            { # Error message per source response.
              "source": { # Defines sources for the suggest/search APIs.
                "predefinedSource": "A String", # Predefined content source for Google Apps.
                "name": "A String", # Source name for content indexed by the
                    # Indexing API.
              },
              "errorMessage": "A String",
            },
          ],
        },
        "hasMoreResults": True or False, # Whether there are more search results matching the query.
      }

`suggest(body, x__xgafv=None)`

    Provides suggestions for autocompleting the query.

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

    { # Request of suggest API.
        "dataSourceRestrictions": [ # The sources to use for suggestions. If not specified, all data sources
            # from the current search application are used.
            # Suggestions are based on Gmail titles. Suggestions from third party sources
            # are not available.
          { # Restriction on Datasource.
            "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 # Generic filter to restrict the search, such as `lang:en`, `site:xyz`.
                    # 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.
                  "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.
                      "timestampValue": "A String",
                      "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.
                        "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month.
                        "year": 42, # Year of date. Must be from 1 to 9999.
                      },
                      "stringValue": "A String",
                      "booleanValue": True or False,
                      "integerValue": "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.
              },
            ],
            "source": { # Defines sources for the suggest/search APIs. # The source of restriction.
              "predefinedSource": "A String", # Predefined content source for Google Apps.
              "name": "A String", # Source name for content indexed by the
                  # Indexing API.
            },
          },
        ],
        "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.
        "requestOptions": { # Shared request options for all RPC methods. # Request options, such as the search application and user timezone.
          "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.
              #
              # When specified, the documents in search results are biased towards the
              # specified language.
              # Suggest API does not use this parameter. It autocompletes only based on
              # characters in the query.
          "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.
          },
          "searchApplicationId": "A String", # Id of the application created using SearchApplicationsService.
          "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)
        },
      }

      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.
              "predefinedSource": "A String", # Predefined content source for Google Apps.
              "name": "A String", # Source name for content indexed by the
                  # Indexing API.
            },
            "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.
                  },
                ],
                "emailAddresses": [ # The person's email addresses
                  { # A person's email address.
                    "emailAddress": "A String", # The email address.
                  },
                ],
                "name": "A String", # The resource name of the person to provide information about.
                    # See
                    # People.get from Google People API.
                "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.
                  },
                ],
                "obfuscatedId": "A String", # Obfuscated ID of a person.
              },
            },
            "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 # This field will be present if the suggested query is a word/phrase
                # completion.
                # indicator that the suggest result was a phrase completion.
            },
          },
        ],
      }