Текстовый поиск с помощью API v2
Примечание
Функциональность находится на стадии Preview.
Интерфейс API v2 сервиса Search API позволяет выполнять запросы к поисковой базе Яндекса с получением ответа в отложенном (асинхронном) режиме. Выполнять запросы можно с помощью REST API и gPRC API. Поисковая выдача зависит от заданных в запросе параметров.
Выполнять запросы может пользователь или сервисный аккаунт, которому назначена роль search-api.webSearch.user
.
В ответ на отложенный запрос Search API возвращает объект Operation, содержащий информацию об операции: статус, идентификатор, время вызова и т.д.
Зная идентификатор объекта Operation, вы можете отследить статус обработки запроса, а также получить результат по завершении обработки.
Формат тела запроса
Имена полей тела запроса различаются в REST API и gPRC API: в REST API используется CamelCase
{
"query": {
"searchType": "<тип_поиска>",
"queryText": "<текст_поискового_запроса>",
"familyMode": "<значение_настройки_фильтрации_результатов>",
"page": "<номер_страницы>"
},
"sortSpec": {
"sortMode": "<правило_сортировки_результатов>",
"sortOrder": "<порядок_сортировки_результатов>"
},
"groupSpec": {
"groupMode": "<метод_группировки_результатов>",
"groupsOnPage": "<количество_групп_на_странице>",
"docsInGroup": "<количество_документов_в_группе>"
},
"maxPassages": "<максимальное_количество_пассажей>",
"region": "<идентификатор_региона>",
"l10N": "<язык_уведомлений>",
"folderId": "<идентификатор_каталога>"
}
Где:
-
searchType
— тип поиска. Возможные значения:SEARCH_TYPE_RU
— для типа поискаРусский
.SEARCH_TYPE_TR
— для типа поискаТурецкий
.SEARCH_TYPE_COM
— для типа поискаМеждународный
.
-
queryText
— текст поискового запроса. Максимальная длина запроса — 400 символов. -
familyMode
— фильтрация результатов. Необязательный параметр. Возможные значения:FAMILY_MODE_MODERATE
— умеренный фильтр (значение по умолчанию). Из выдачи исключаются документы, относящиеся к категории "для взрослых", если запрос явно не направлен на поиск подобных ресурсов.FAMILY_MODE_NONE
— фильтрация отключена. В выдачу включаются любые документы вне зависимости от содержимого.FAMILY_MODE_STRICT
— семейный фильтр. Вне зависимости от поискового запроса из выдачи исключаются документы, относящиеся к категории "для взрослых", а также содержащие ненормативную лексику.
-
page
— номер запрашиваемой страницы. Необязательный параметр. По умолчанию возвращается первая страница поисковой выдачи. Нумерация страниц начинается с нуля (первой странице соответствует значение0
). -
sortMode
— правило сортировки результатов поиска, которое определяет порядок выдачи результатов поиска. Необязательный параметр. Возможные значения:SORT_MODE_BY_RELEVANCE
— сортировка по релевантности (значение по умолчанию).SORT_MODE_BY_TIME
— сортировка по времени изменения документа.
-
sortOrder
— порядок сортировки результатов поиска. Необязательный параметр. Возможные значения:SORT_ORDER_DESC
— прямой порядок сортировки — от наиболее свежего к наиболее старому (значение по умолчанию).SORT_ORDER_ASC
— обратный порядок сортировки — от наиболее старого к наиболее свежему.
-
groupMode
— метод группировки результатов. Необязательный параметр. Возможные значения:GROUP_MODE_DEEP
— группировка по доменам. Каждая группа содержит документы одного домена (значение по умолчанию).GROUP_MODE_FLAT
— плоская группировка. Каждая группа содержит один документ.
-
groupsOnPage
— максимальное количество групп, которые могут быть возвращены на одной странице результатов поиска. Необязательный параметр. Допустимые значения — от1
до100
. Значение по умолчанию —20
. -
docsInGroup
— максимальное количество документов, которые могут быть возвращены в одной группе. Необязательный параметр. Допустимые значения — от1
до3
. Значение по умолчанию —1
. -
maxPassages
— максимальное количество пассажей, которое может быть использовано при формировании сниппета к документу. Необязательный параметр. Допустимые значения — от1
до5
. По умолчанию для каждого документа возвращается не более четырех пассажей с текстом запроса. -
region
— идентификатор страны или региона поиска, который влияет на правила ранжирования документов. Поддерживается только для типов поискаРусский
иТурецкий
.Список идентификаторов часто используемых стран и регионов см. в разделе Регионы поиска.
-
l10N
— язык уведомлений поискового ответа. Влияет на текст, передаваемый в тегеfound-docs-human
и в сообщениях об ошибках. Необязательный параметр. Возможные значения зависят от выбранного типа поиска:-
Тип поиска
Русский
:LOCALIZATION_RU
— русский язык (значение по умолчанию).LOCALIZATION_BE
— белорусский язык.LOCALIZATION_KK
— казахский язык.LOCALIZATION_UK
— украинский язык.
-
Тип поиска
Турецкий
:LOCALIZATION_TR
— турецкий язык.
-
Тип поиска
Международный
:LOCALIZATION_EN
— английский язык.
-
-
folderId
— идентификатор каталога пользователя или сервисного аккаунта, от имени которого вы будете выполнять запросы.
{
"query": {
"search_type": "<тип_поиска>",
"query_text": "<текст_поискового_запроса>",
"family_mode": "<значение_настройки_фильтрации_результатов>",
"page": "<номер_страницы>"
},
"sort_spec": {
"sort_mode": "<правило_сортировки_результатов>",
"sort_order": "<порядок_сортировки_результатов>"
},
"group_spec": {
"group_mode": "<метод_группировки_результатов>",
"groups_on_page": "<количество_групп_на_странице>",
"docs_in_group": "<количество_документов_в_группе>"
},
"max_passages": "<максимальное_количество_пассажей>",
"region": "<идентификатор_региона>",
"l10n": "<язык_уведомлений>",
"folder_id": "<идентификатор_каталога>"
}
Где:
-
search_type
— тип поиска. Возможные значения:SEARCH_TYPE_RU
— для типа поискаРусский
.SEARCH_TYPE_TR
— для типа поискаТурецкий
.SEARCH_TYPE_COM
— для типа поискаМеждународный
.
-
query_text
— текст поискового запроса. Максимальная длина запроса — 400 символов. -
family_mode
— фильтрация результатов. Необязательный параметр. Возможные значения:FAMILY_MODE_MODERATE
— умеренный фильтр (значение по умолчанию). Из выдачи исключаются документы, относящиеся к категории "для взрослых", если запрос явно не направлен на поиск подобных ресурсов.FAMILY_MODE_NONE
— фильтрация отключена. В выдачу включаются любые документы вне зависимости от содержимого.FAMILY_MODE_STRICT
— семейный фильтр. Вне зависимости от поискового запроса из выдачи исключаются документы, относящиеся к категории "для взрослых", а также содержащие ненормативную лексику.
-
page
— номер запрашиваемой страницы. Необязательный параметр. По умолчанию возвращается первая страница поисковой выдачи. Нумерация страниц начинается с нуля (первой странице соответствует значение0
). -
sort_mode
— правило сортировки результатов поиска, которое определяет порядок выдачи результатов поиска. Необязательный параметр. Возможные значения:SORT_MODE_BY_RELEVANCE
— сортировка по релевантности (значение по умолчанию).SORT_MODE_BY_TIME
— сортировка по времени изменения документа.
-
sort_order
— порядок сортировки результатов поиска. Необязательный параметр. Возможные значения:SORT_ORDER_DESC
— прямой порядок сортировки — от наиболее свежего к наиболее старому (значение по умолчанию).SORT_ORDER_ASC
— обратный порядок сортировки — от наиболее старого к наиболее свежему.
-
group_mode
— метод группировки результатов. Необязательный параметр. Возможные значения:GROUP_MODE_DEEP
— группировка по доменам. Каждая группа содержит документы одного домена (значение по умолчанию).GROUP_MODE_FLAT
— плоская группировка. Каждая группа содержит один документ.
-
groups_on_page
— максимальное количество групп, которые могут быть возвращены на одной странице результатов поиска. Необязательный параметр. Допустимые значения — от1
до100
. Значение по умолчанию —20
. -
docs_in_group
— максимальное количество документов, которые могут быть возвращены в одной группе. Необязательный параметр. Допустимые значения — от1
до3
. Значение по умолчанию —1
. -
max_passages
— максимальное количество пассажей, которое может быть использовано при формировании сниппета к документу. Необязательный параметр. Допустимые значения — от1
до5
. По умолчанию для каждого документа возвращается не более четырех пассажей с текстом запроса. -
region
— идентификатор страны или региона поиска, который влияет на правила ранжирования документов. Поддерживается только для типов поискаРусский
иТурецкий
.Список идентификаторов часто используемых стран и регионов см. в разделе Регионы поиска.
-
l10n
— язык уведомлений поискового ответа. Влияет на текст, передаваемый в тегеfound-docs-human
и в сообщениях об ошибках. Необязательный параметр. Возможные значения зависят от выбранного типа поиска:-
Тип поиска
Русский
:LOCALIZATION_RU
— русский язык (значение по умолчанию).LOCALIZATION_BE
— белорусский язык.LOCALIZATION_KK
— казахский язык.LOCALIZATION_UK
— украинский язык.
-
Тип поиска
Турецкий
:LOCALIZATION_TR
— турецкий язык.
-
Тип поиска
Международный
:LOCALIZATION_EN
— английский язык.
-
-
folder_id
— идентификатор каталога пользователя или сервисного аккаунта, от имени которого вы будете выполнять запросы.
Формат ответа
В ответ на отложенный запрос Search API возвращает объект Operation в следующем формате:
{
"done": true,
"response": {
"@type": "type.googleapis.com/yandex.cloud.searchapi.v2.WebSearchResponse",
"rawData": "<тело_XML_ответа_в_кодировке_Base64>"
},
"id": "<идентификатор_объекта_operation>",
"description": "WEB search async",
"createdAt": "2024-10-03T08:07:07Z",
"createdBy": "<идентификатор_субъекта>",
"modifiedAt": "2024-10-03T08:12:09Z"
}
{
"id": "<идентификатор_объекта_operation>",
"description": "WEB search async",
"createdAt": "2024-10-03T08:07:07Z",
"createdBy": "<идентификатор_субъекта>",
"modifiedAt": "2024-10-03T08:12:09Z",
"done": true,
"response": {
"@type": "type.googleapis.com/yandex.cloud.searchapi.v2.WebSearchResponse",
"rawData": "<тело_XML_ответа_в_кодировке_Base64>"
}
}
Объект response
внутри объекта Operation становится доступен только после того, как запрос был выполнен на стороне Search API, а значение поля done
(статус операции) изменилось на true
.
Значение поля rawData
объекта response
содержит XML-ответ в кодировке Base64
Подробнее об объекте Operation и его полях см. в разделе Объект Operation.