Текстовый поиск

Интерфейсы Yandex AI Studio SDK и API сервиса Yandex Search API позволяют выполнять запросы к поисковой базе Яндекса с получением ответа в синхронном или отложенном режиме. Поисковая выдача зависит от заданных в запросе параметров.

Выполнять запросы может пользователь или сервисный аккаунт, которому назначена роль search-api.webSearch.user.

В зависимости от заданных параметров запроса, результат возвращается в формате XML или HTML.

Примечание

Параметры и примеры поисковых запросов с использованием AI SDK см. в инструкциях по работе с Yandex Search API.

Формат тела API-запроса

Имена полей тела запроса различаются в REST API и gRPC API: в REST API используется CamelCase, в gRPC API — snake_case.

{
            "query": {
              "searchType": "<тип_поиска>",
              "queryText": "<текст_поискового_запроса>",
              "familyMode": "<значение_настройки_фильтрации_результатов>",
              "page": "<номер_страницы>",
              "fixTypoMode": "<значение_настройки_режима_исправления_опечаток>"
            },
            "sortSpec": {
              "sortMode": "<правило_сортировки_результатов>",
              "sortOrder": "<порядок_сортировки_результатов>"
            },
            "groupSpec": {
              "groupMode": "<метод_группировки_результатов>",
              "groupsOnPage": "<количество_групп_на_странице>",
              "docsInGroup": "<количество_документов_в_группе>"
            },
            "maxPassages": "<максимальное_количество_пассажей>",
            "region": "<идентификатор_региона>",
            "l10N": "<язык_уведомлений>",
            "folderId": "<идентификатор_каталога>",
            "responseFormat": "<формат_результата>",
            "userAgent": "<заголовок_User-Agent>"
        }
        

Где:

  • searchType — тип поиска. Возможные значения:

    • SEARCH_TYPE_RU — для типа поиска Русский.
    • SEARCH_TYPE_TR — для типа поиска Турецкий.
    • SEARCH_TYPE_COM — для типа поиска Международный.
    • SEARCH_TYPE_KK — для типа поиска Казахский.
    • SEARCH_TYPE_BE – для типа поиска Белорусский.
    • SEARCH_TYPE_UZ — для типа поиска Узбекский.
  • queryText — текст поискового запроса. Максимальная длина запроса — 400 символов.

  • familyMode — фильтрация результатов. Необязательный параметр. Возможные значения:

    • FAMILY_MODE_MODERATE — умеренный фильтр (значение по умолчанию). Из выдачи исключаются документы, относящиеся к категории «для взрослых», если запрос явно не направлен на поиск подобных ресурсов.
    • FAMILY_MODE_NONE — фильтрация отключена. В выдачу включаются любые документы вне зависимости от содержимого.
    • FAMILY_MODE_STRICT — семейный фильтр. Вне зависимости от поискового запроса из выдачи исключаются документы, относящиеся к категории «для взрослых», а также содержащие ненормативную лексику.
  • page — номер запрашиваемой страницы. Необязательный параметр. По умолчанию возвращается первая страница поисковой выдачи. Нумерация страниц начинается с нуля (первой странице соответствует значение 0).

  • fixTypoMode — значение настройки режима исправления опечаток в поисковом запросе. Необязательный параметр. Возможные значения:

    • FIX_TYPO_MODE_ON — исправление опечаток включено (значение по умолчанию). Опечатки в тексте поискового запроса автоматически исправляются.
    • FIX_TYPO_MODE_OFF — исправление опечаток отключено. Опечатки в тексте поискового запроса не исправляются, поиск выполняется в полном соответствии с переданным запросом.
  • sortMode — правило сортировки результатов поиска, которое определяет порядок выдачи результатов поиска. Необязательный параметр. Возможные значения:

    • SORT_MODE_BY_RELEVANCE — сортировка по релевантности (значение по умолчанию).
    • SORT_MODE_BY_TIME — сортировка по времени изменения документа.
  • sortOrder — порядок сортировки результатов поиска. Необязательный параметр. Возможные значения:

    • SORT_ORDER_DESC — прямой порядок сортировки — от наиболее свежего к наиболее старому (значение по умолчанию).
    • SORT_ORDER_ASC — обратный порядок сортировки — от наиболее старого к наиболее свежему.
  • groupMode — метод группировки результатов. Необязательный параметр. Возможные значения:

    • GROUP_MODE_DEEP — группировка по доменам. Каждая группа содержит документы одного домена (значение по умолчанию).
    • GROUP_MODE_FLAT — плоская группировка. Каждая группа содержит один документ.
  • groupsOnPage — максимальное количество групп, которые могут быть возвращены на одной странице результатов поиска. Необязательный параметр. Значение по умолчанию — 20.

    При получении результата в формате XML допустимые значения — от 1 до 100, при получении результата в формате HTML — от 5 до 50.

  • 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идентификатор каталога пользователя или сервисного аккаунта, от имени которого вы будете выполнять запросы.

  • responseFormat — формат получения поисковой выдачи. Необязательный параметр. Возможные значения:

    • FORMAT_XML — результат запроса будет передан в формате XML (значение по умолчанию).
    • FORMAT_HTML — результат запроса будет передан в формате HTML.
  • userAgent — строка, содержащая заголовок User-Agent. Параметр позволяет получить поисковую выдачу, ориентированную на конкретные устройство и браузер, в том числе мобильную выдачу. Необязательный параметр. Если параметр не задан, сервис возвращает стандартную выдачу по умолчанию.

Список поддерживаемых параметров:

Примечание

Список поддерживаемых в запросе параметров зависит от того, в каком формате требуется получить результат: XML или HTML.

Параметр Поддерживается при XML-ответе Поддерживается при HTML-ответе
searchType yes yes
queryText yes yes
familyMode yes yes
page yes yes
fixTypoMode yes no
sortMode yes no
sortOrder yes no
groupMode yes no
groupsOnPage yes yes
docsInGroup yes no
maxPassages yes no
region yes yes
l10N yes no
folderId yes yes
responseFormat yes yes
userAgent yes yes
{
            "query": {
              "search_type": "<тип_поиска>",
              "query_text": "<текст_поискового_запроса>",
              "family_mode": "<значение_настройки_фильтрации_результатов>",
              "page": "<номер_страницы>",
              "fix_typo_mode": "<значение_настройки_режима_исправления_опечаток>"
            },
            "sort_spec": {
              "sort_mode": "<правило_сортировки_результатов>",
              "sort_order": "<порядок_сортировки_результатов>"
            },
            "group_spec": {
              "group_mode": "<метод_группировки_результатов>",
              "groups_on_page": "<количество_групп_на_странице>",
              "docs_in_group": "<количество_документов_в_группе>"
            },
            "max_passages": "<максимальное_количество_пассажей>",
            "region": "<идентификатор_региона>",
            "l10n": "<язык_уведомлений>",
            "folder_id": "<идентификатор_каталога>",
            "response_format": "<формат_результата>",
            "user_agent": "<заголовок_User-Agent>"
        }
        

Где:

  • search_type — тип поиска. Возможные значения:

    • SEARCH_TYPE_RU — для типа поиска Русский.
    • SEARCH_TYPE_TR — для типа поиска Турецкий.
    • SEARCH_TYPE_COM — для типа поиска Международный.
    • SEARCH_TYPE_KK — для типа поиска Казахский.
    • SEARCH_TYPE_BE – для типа поиска Белорусский.
    • SEARCH_TYPE_UZ — для типа поиска Узбекский.
  • query_text — текст поискового запроса. Максимальная длина запроса — 400 символов.

  • family_mode — фильтрация результатов. Необязательный параметр. Возможные значения:

    • FAMILY_MODE_MODERATE — умеренный фильтр (значение по умолчанию). Из выдачи исключаются документы, относящиеся к категории «для взрослых», если запрос явно не направлен на поиск подобных ресурсов.
    • FAMILY_MODE_NONE — фильтрация отключена. В выдачу включаются любые документы вне зависимости от содержимого.
    • FAMILY_MODE_STRICT — семейный фильтр. Вне зависимости от поискового запроса из выдачи исключаются документы, относящиеся к категории «для взрослых», а также содержащие ненормативную лексику.
  • page — номер запрашиваемой страницы. Необязательный параметр. По умолчанию возвращается первая страница поисковой выдачи. Нумерация страниц начинается с нуля, первой странице соответствует значение 0.

  • fix_typo_mode — значение настройки режима исправления опечаток в поисковом запросе. Необязательный параметр. Возможные значения:

    • FIX_TYPO_MODE_ON — исправление опечаток включено (значение по умолчанию). Опечатки в тексте поискового запроса автоматически исправляются.
    • FIX_TYPO_MODE_OFF — исправление опечаток отключено. Опечатки в тексте поискового запроса не исправляются, поиск выполняется в полном соответствии с переданным запросом.
  • 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 — максимальное количество групп, которые могут быть возвращены на одной странице результатов поиска. Необязательный параметр. Значение по умолчанию — 20.

    При получении результата в формате XML допустимые значения — от 1 до 100, при получении результата в формате HTML — от 5 до 50.

  • 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идентификатор каталога пользователя или сервисного аккаунта, от имени которого вы будете выполнять запросы.

  • response_format — формат получения поисковой выдачи. Необязательный параметр. Возможные значения:

    • FORMAT_XML — результат запроса будет передан в формате XML (значение по умолчанию).
    • FORMAT_HTML — результат запроса будет передан в формате HTML.
  • user_agent — строка, содержащая заголовок User-Agent. Параметр позволяет получить поисковую выдачу, ориентированную на конкретные устройство и браузер, в том числе мобильную выдачу. Необязательный параметр. Если параметр не задан, сервис возвращает стандартную выдачу по умолчанию.

Список поддерживаемых параметров:

Примечание

Список поддерживаемых в запросе параметров зависит от того, в каком формате требуется получить результат: XML или HTML.

Параметр Поддерживается при XML-ответе Поддерживается при HTML-ответе
search_type yes yes
query_text yes yes
family_mode yes yes
page yes yes
fix_typo_mode yes no
sort_mode yes no
sort_order yes no
group_mode yes no
groups_on_page yes yes
docs_in_group yes no
max_passages yes no
region yes yes
l10n yes no
folder_id yes yes
response_format yes yes
user_agent yes yes

Синхронный режим поиска

В синхронном режиме запросы можно выполнять с помощью Yandex AI Studio SDK, REST API и gRPC API.

В ответ на запрос в синхронном режиме сервис Yandex Search API в зависимости от заданных параметров запроса возвращает результат в формате XML или HTML. Результат возвращается в поле rawData ответа в кодировке Base64.

Примечание

Ответ не содержит обязательных полей. Поле может отсутствовать в ответе, если не содержит значащей информации.

Отложенный (асинхронный) режим поиска

В отложенном режиме запросы можно выполнять с помощью Yandex AI Studio SDK, REST API и gRPC API.

В ответ на отложенный запрос Yandex Search API возвращает объект Operation, содержащий информацию об операции: статус, идентификатор, время вызова и т.д.

Зная идентификатор объекта Operation, вы можете отследить статус обработки запроса, а также получить результат по завершении обработки. Подробнее см. в разделе Выполнение текстовых поисковых запросов в отложенном режиме.

В зависимости от заданных параметров запроса результат возвращается в поле response.rawData ответа в формате XML или HTML.

Формат ответа при асинхронном поиске

В ответ на отложенный запрос API Yandex 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 становится доступен только после того, как запрос был выполнен на стороне Yandex Search API, а значение поля done (статус операции) изменилось на true.

Значение поля rawData объекта response в зависимости от параметров запроса содержит XML или HTML ответ в кодировке Base64.

См. также

Предыдущая
Следующая