- HTTP-запрос
- Текст запроса
- Ответный текст
- Области полномочий
- QueryInterpretationOptions
- Интерпретация запроса
- QueryInterpretation.InterpretationType
- QueryInterpretation.Reason
- Результаты поиска
- Фрагмент
- Диапазон подбора
- Метаданные
- ResultDisplayMetadata
- ResultDisplayMetadata.ResultDisplayLine
- ResultDisplayMetadata.ResultDisplayField
- ResultDebugInfo
- StructuredResult
- SpellResult
- SpellResult.SuggestionType
- SafeHtmlProto
- FacetResult
- FacetBucket
- ResponseDebugInfo
- ErrorInfo
- Сообщение об ошибке
- ResultCounts
- SourceResultCount
- Попробуйте!
API запросов Cloud Search предоставляет метод поиска, который возвращает наиболее релевантные результаты по запросу пользователя. Результаты могут поступать из приложений Google Workspace, таких как Gmail или Google Drive, или из данных, проиндексированных вами сторонними сервисами.
Примечание: Для выполнения этого API требуется стандартная учетная запись конечного пользователя. Служебная учетная запись не может напрямую выполнять запросы к API; чтобы использовать служебную учетную запись для выполнения запросов, настройте делегирование полномочий в масштабе всего домена Google Workspace .
HTTP-запрос
POST https://cloudsearch.googleapis.com/v1/query/search
В URL-адресе используется синтаксис транскодирования gRPC .
Текст запроса
Тело запроса содержит данные следующей структуры:
| JSON-представление |
|---|
{ "requestOptions": { object ( |
| Поля | |
|---|---|
requestOptions | Параметры запроса, такие как приложение для поиска и часовой пояс пользователя. |
query | Исходная строка запроса. См. поддерживаемые операторы поиска в разделе «Сужение поиска с помощью операторов». |
pageSize | Максимальное количество результатов поиска на одной странице. Допустимые значения — от 1 до 100 включительно. Значение по умолчанию — 10. Минимальное значение — 50, если запрашивается более 2000 результатов. |
start | Начальный индекс результатов. |
dataSourceRestrictions[] | Источники данных, используемые для выполнения запросов. Если не указано иное, используются все источники данных из текущего поискового приложения. |
facetOptions[] | |
sortOptions | Параметры сортировки результатов поиска |
queryInterpretationOptions | варианты интерпретации пользовательского запроса. |
contextAttributes[] | Контекстные атрибуты запроса, которые будут использоваться для корректировки ранжирования результатов поиска. Максимальное количество элементов — 10. |
Ответный текст
Ответ API поиска. Идентификатор NEXT: 19
В случае успеха тело ответа будет содержать данные следующей структуры:
| JSON-представление |
|---|
{ "queryInterpretation": { object ( |
| Поля | |
|---|---|
queryInterpretation | Результат интерпретации запроса пользователя. Пусто, если интерпретация запроса отключена. |
results[] | Результаты поискового запроса. |
structuredResults[] | Структурированные результаты для пользовательского запроса. Эти результаты не учитываются при расчете размера страницы. |
spellResults[] | Предложенное написание запроса. |
facetResults[] | Результаты повторного анализа аспектов. |
hasMoreResults | Есть ли еще результаты поиска, соответствующие запросу? |
debugInfo | Отладочная информация об ответе. |
errorInfo | Информация об ошибке в ответе. |
resultCounts | Расширенная информация о количестве результатов. |
Union field
В редких случаях, когда система не может выполнить поиск по всем документам, повторите запрос. | |
resultCountEstimate | Примерное количество результатов для этого запроса. |
resultCountExact | Точное количество результатов по этому запросу. |
Области полномочий
Требуется один из следующих диапазонов аутентификации OAuth:
-
https://www.googleapis.com/auth/cloud_search.query -
https://www.googleapis.com/auth/cloud_search
Для получения более подробной информации см. руководство по авторизации .
QueryInterpretationOptions
варианты интерпретации запроса пользователя.
| JSON-представление |
|---|
{ "disableNlInterpretation": boolean, "enableVerbatimMode": boolean, "disableSupplementalResults": boolean } |
| Поля | |
|---|---|
disableNlInterpretation | Флаг для отключения интерпретации запросов на естественном языке (NL). По умолчанию — false. Установите значение true, чтобы отключить интерпретацию на естественном языке. Интерпретация на естественном языке применяется только к предопределенным источникам данных. |
enableVerbatimMode | 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. |
disableSupplementalResults | Используйте этот флаг, чтобы отключить дополнительные результаты для запроса. Если параметр «Дополнительные результаты» установлен на уровне SearchApplication, он будет иметь приоритет. |
Интерпретация запроса
| JSON-представление |
|---|
{ "interpretedQuery": string, "interpretationType": enum ( |
| Поля | |
|---|---|
interpretedQuery | Интерпретация запроса, используемого в поиске. Например, запросы с намерением, выраженным на естественном языке, такие как "email from john", будут интерпретироваться как "from:john source:mail". Это поле не будет заполнено, если причина — NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY. |
interpretationType | |
reason | Причина интерпретации запроса. Это поле не будет иметь значение UNSPECIFIED, если тип интерпретации не равен NONE. |
interpretedQueryActualResultCount | Фактическое количество результатов, возвращенных интерпретированным запросом. |
interpretedQueryEstimatedResultCount | Примерное количество результатов, возвращаемых интерпретированным запросом. |
QueryInterpretation.InterpretationType
| Перечисления | |
|---|---|
NONE | Для получения результатов поиска не используется ни интерпретация на естественном языке, ни более расширенная версия запроса. |
BLEND | Результаты исходного запроса объединяются с другими результатами. Причина объединения этих других результатов с результатами исходного запроса указывается в поле «Причина» ниже. |
REPLACE | Результаты исходного запроса заменены. Причина замены результатов исходного запроса указана в поле «Причина» ниже. |
QueryInterpretation.Reason
| Перечисления | |
|---|---|
UNSPECIFIED | |
QUERY_HAS_NATURAL_LANGUAGE_INTENT | Для получения результатов поиска используется интерпретация запроса на естественном языке. |
NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY | Сходство терминов запроса и документа используется для выборочного расширения запроса с целью получения дополнительных результатов поиска, поскольку для запроса пользователя не было найдено достаточно результатов. В этом случае интерпретированный запрос будет пустым. |
Результаты поиска
Результаты, содержащие индексированную информацию для документа. Идентификатор следующего документа: 16
| JSON-представление |
|---|
{ "title": string, "url": string, "snippet": { object ( |
| Поля | |
|---|---|
title | заголовок результата поиска. |
url | URL-адрес результата поиска. Этот URL-адрес содержит перенаправление от Google на сам товар. Этот URL-адрес подписан и не должен изменяться. |
snippet | Объединение всех доступных фрагментов (сводок) для данного результата. |
metadata | метаданные результатов поиска. |
clusteredResults[] | Если источник данных кластеризован, укажите список кластеризованных результатов. Будет только один уровень кластеризованных результатов. Если кластеризация для текущего источника данных не включена, это поле будет пустым. |
debugInfo | Отладочная информация о результатах поиска. |
Snippet
Фрагмент результатов поиска, кратко описывающий содержимое полученной страницы.
| JSON-представление |
|---|
{
"snippet": string,
"matchRanges": [
{
object ( |
| Поля | |
|---|---|
snippet | Фрагмент документа. Может содержать экранированные HTML-символы, которые следует расшифровать перед отображением. |
matchRanges[] | Соответствующие диапазоны в фрагменте кода. |
Диапазон подбора
Соответствующий диапазон фрагмента [начало, конец).
| JSON-представление |
|---|
{ "start": integer, "end": integer } |
| Поля | |
|---|---|
start | В приведенном фрагменте указана стартовая позиция в матче. |
end | В этом фрагменте показана концовка матча. |
Метаданные
метаданные результата поиска, на который был найден ответ.
| JSON-представление |
|---|
{ "source": { object ( |
| Поля | |
|---|---|
source | Указан источник результата, например, Gmail. |
mimeType | MIME-тип результата поиска. |
thumbnailUrl | URL-адрес миниатюры результата. |
owner | Владелец (обычно создатель) документа или объекта, являющегося результатом поиска. |
createTime | Время создания данного документа или объекта в результатах поиска. Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: |
updateTime | The last modified date for the object in the search result. If not set in the item, the value returned here is empty. When Используется RFC 3339, согласно которому генерируемый вывод всегда будет Z-нормализован и будет содержать 0, 3, 6 или 9 дробных знаков. Допускаются также смещения, отличные от "Z". Примеры: |
fields[] | Индексированные поля в структурированных данных, возвращаемые в виде универсального именованного свойства. |
displayOptions | Параметры, определяющие способ отображения результатов поиска структурированных данных. |
objectType | Тип объекта результата поиска. |
ResultDisplayMetadata
| JSON-представление |
|---|
{
"objectTypeLabel": string,
"metalines": [
{
object ( |
| Поля | |
|---|---|
objectTypeLabel | Отображаемая метка объекта. |
metalines[] | Содержимое металиний, которое будет отображаться вместе с результатом. |
ResultDisplayMetadata.ResultDisplayLine
Совокупность полей, из которых состоит отображаемая строка.
| JSON-представление |
|---|
{
"fields": [
{
object ( |
| Поля | |
|---|---|
fields[] | |
ResultDisplayMetadata.ResultDisplayField
Отображение полей для результатов поиска по запросу.
| JSON-представление |
|---|
{
"label": string,
"operatorName": string,
"property": {
object ( |
| Поля | |
|---|---|
label | Отображаемая метка для объекта недвижимости. |
operatorName | Название оператора объекта недвижимости. |
property | Пара "имя-значение" для свойства. |
ResultDebugInfo
Отладочная информация о результате.
| JSON-представление |
|---|
{ "formattedDebugInfo": string } |
| Поля | |
|---|---|
formattedDebugInfo | Общая отладочная информация, отформатированная для отображения. |
СтруктурированныйРезультат
Структурированные результаты, возвращаемые в рамках поискового запроса.
| JSON-представление |
|---|
{ // Union field |
| Поля | |
|---|---|
Объединенное поле | |
person | Изображение человека |
SpellResult
| JSON-представление |
|---|
{ "suggestedQuery": string, "suggestionType": enum ( |
| Поля | |
|---|---|
suggestedQuery | Предлагаемый вариант написания запроса. |
suggestionType | Для текущего запроса сработало предложение. |
suggestedQueryHtml | Очищенный HTML-код, представляющий собой запрос с исправлениями орфографии, который можно использовать в пользовательском интерфейсе. Обычно он содержит теги, специфичные для конкретного языка, для разметки частей запроса, прошедших проверку орфографии. |
SpellResult.SuggestionType
Тип подсказки, срабатывающей для запроса.
| Перечисления | |
|---|---|
SUGGESTION_TYPE_UNSPECIFIED | Тип проверки орфографии по умолчанию |
NON_EMPTY_RESULTS_SPELL_SUGGESTION | Предложенные варианты написания без каких-либо результатов изменились. Результаты по-прежнему отображаются для исходного запроса (который имеет ненулевое количество результатов) с предложением варианта написания, который должен был бы иметь результаты. |
ZERO_RESULTS_FULL_PAGE_REPLACEMENT | Функция подсказок орфографии срабатывает, когда исходный запрос не дает результатов. Если исходный запрос не дает результатов, а функция подсказок орфографии дает результаты, мы запускаем подсказки для запроса с исправленной орфографией. |
SafeHtmlProto
ВАЖНО: Небезопасно принимать это сообщение из ненадежного источника, поскольку злоумышленнику легко подделать сериализованные сообщения, не соответствующие контракту безопасности типа — например, они могут содержать скрипт, управляемый злоумышленником. Система, получающая SafeHtmlProto, неявно доверяет создателю SafeHtmlProto. Поэтому, как правило, безопасно возвращать это сообщение в ответах RPC, но небезопасно принимать его в запросах RPC.
| JSON-представление |
|---|
{ "privateDoNotAccessOrElseSafeHtmlWrappedValue": string } |
| Поля | |
|---|---|
privateDoNotAccessOrElseSafeHtmlWrappedValue | ВАЖНО: Никогда не устанавливайте и не считывайте это поле, даже в тестах, оно является приватным. См. документацию в верхней части файла .proto для получения информации о пакетах языков программирования, с помощью которых можно создать или прочитать это сообщение. |
FacetResult
Ответ на конкретный аспект источника
| JSON-представление |
|---|
{
"sourceName": string,
"objectType": string,
"operatorName": string,
"buckets": [
{
object ( |
| Поля | |
|---|---|
sourceName | Название источника, для которого возвращаются результаты фасетного поиска. Не будет пустым. |
objectType | Тип объекта, для которого возвращаются результаты фасетного анализа. Может быть пустым. |
operatorName | Название оператора, выбранного для фасетного поиска. @see cloudsearch.SchemaPropertyOptions |
buckets[] | FacetBuckets — это параметры для значений в ответе, содержащие как минимум один результат с соответствующим фильтром. |
FacetBucket
В фасетном анализе базовой единицей операции является сегмент (bucket). Сегмент может содержать либо одно значение, либо непрерывный диапазон значений, в зависимости от типа поля, в которое он помещается. В настоящее время FacetBucket используется только для возврата объекта ответа.
| JSON-представление |
|---|
{ "count": integer, "percentage": integer, "filter": { object ( |
| Поля | |
|---|---|
count | Количество результатов, соответствующих значению сегмента. Подсчеты возвращаются только для тех поисков, для которых гарантирована точность подсчета. Cloud Search не гарантирует подсчет фасетов для любого запроса, и подсчеты фасетов могут присутствовать лишь периодически, даже для идентичных запросов. Не следует создавать зависимости от наличия подсчетов фасетов; вместо этого используйте процентное соотношение подсчетов фасетов, которое возвращается всегда. |
percentage | Процент результатов, соответствующих значению категории. Возвращаемое значение находится в диапазоне (0-100) и округляется до целого числа, если оно дробное. Если значение не возвращается явно, оно представляет собой процентное значение, округленное до 0. Проценты возвращаются для всех поисковых запросов, но являются приблизительной оценкой. Поскольку проценты возвращаются всегда, следует отображать именно проценты, а не количество. |
filter | Фильтр, передаваемый в поисковом запросе, если выбран соответствующий сегмент. |
Поле объединения bucket_value . Диапазон или значение сегмента, к которому применяется фасетный метод bucket_value может принимать только одно из следующих значений: | |
value | |
ResponseDebugInfo
Отладочная информация об ответе.
| JSON-представление |
|---|
{ "formattedDebugInfo": string } |
| Поля | |
|---|---|
formattedDebugInfo | Общая отладочная информация, отформатированная для отображения. |
ErrorInfo
Информация об ошибке в ответе.
| JSON-представление |
|---|
{
"errorMessages": [
{
object ( |
| Поля | |
|---|---|
errorMessages[] | |
Сообщение об ошибке
Сообщение об ошибке для каждого ответа источника.
| JSON-представление |
|---|
{
"source": {
object ( |
| Поля | |
|---|---|
source | |
errorMessage | |
ResultCounts
Информация о количестве результатов
| JSON-представление |
|---|
{
"sourceResultCounts": [
{
object ( |
| Поля | |
|---|---|
sourceResultCounts[] | Информация о количестве результатов для каждого источника с указанием полученных данных. |
SourceResultCount
Информация о количестве результатов по каждому источнику.
| JSON-представление |
|---|
{ "source": { object ( |
| Поля | |
|---|---|
source | Источник, с которым связана информация о количестве результатов. |
hasMoreResults | Есть ли еще результаты поиска по этому источнику? |
Объединенное поле | |
resultCountEstimate | Примерное количество результатов для этого источника. |
resultCountExact | Точное количество результатов для этого источника. |