Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex SpeechSense
  • Начало работы
    • Все инструкции
        • Поиск данных через gRPC API
          • Полнотекстовый поиск в REST API
          • Фильтрация по параметрам в REST API
          • Получение информации о диалоге в REST API
      • Работа с диалогами
      • Просмотр связанных диалогов
      • Работа с отчетами
  • Аудитные логи Audit Trails
  • Управление доступом
  • Правила тарификации
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Перед началом работы
  • Полнотекстовый поиск
  • Примеры запросов
  • Пример тела запроса для полнотекстового поиска
  • Пример тела запроса для полнотекстового поиска с фильтрацией по параметрам
  1. Пошаговые инструкции
  2. Работа с данными
  3. Поиск данных
  4. Поиск данных через REST API
  5. Полнотекстовый поиск в REST API

Полнотекстовый поиск в REST API

Статья создана
Yandex Cloud
Обновлена 20 марта 2025 г.
  • Перед началом работы
  • Полнотекстовый поиск
  • Примеры запросов
    • Пример тела запроса для полнотекстового поиска
    • Пример тела запроса для полнотекстового поиска с фильтрацией по параметрам

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

Чтобы уточнить результаты поиска, вы можете использовать фильтрацию по параметрам вместе с полнотекстовым поиском. В таком случае в ответе вернутся только идентификаторы запросов, которые удовлетворяют и критериям полнотекстового поиска, и дополнительным фильтрам.

Перед началом работыПеред началом работы

Чтобы искать данные через REST API Yandex Cloud:

  1. В консоли управления создайте сервисный аккаунт.

  2. Добавьте сервисный аккаунт в пространство с ролью Data viewer. Это позволит сервисному аккаунту работать с данными в SpeechSense.
  3. Чтобы аутентифицироваться в API Yandex Cloud, создайте API-ключ или IAM-токен для сервисного аккаунта.

  4. Загрузите аудиозаписи или чаты в SpeechSense.

Полнотекстовый поискПолнотекстовый поиск

  1. Создайте файл search.json, укажите в нем нужные идентификаторы и параметры для полнотекстового поиска:

    {
      "organizationId": "<идентификатор_организации>",
      "spaceId": "<идентификатор_пространства>",
      "connectionId": "<идентификатор_подключения>",
      "projectId": "<идентификатор_проекта>",
      "query": {
        "text": "<поисковый_запрос>",
        "channelNumber": "<номер_канала>"
      },
      "sortData": {
        "fields": [{  
          "field": "<характеристика_диалога,_по_которой_производится_поиск>",
          "order": "<порядок_сортировки:_по_возрастанию_или_убыванию>",
          "position": "<приоритет_поля_сортировки>"
        }]
      },
      "pageSize": "<количество_документов_на_странице>",
      "pageToken": "<токен_следующей_страницы_с_результатами_поиска>"
    }
    

    Где:

    • organizationId — идентификатор организации, в которой выполняется запрос. Чтобы получить идентификатор, перейдите в сервис Cloud Center и нажмите кнопку под названием организации, в разделе .
    • spaceId — идентификатор пространства, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense, откройте страницу нужного пространства и нажмите кнопку ID.
    • connectionId — идентификатор подключения, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense, откройте страницу нужного пространства, на вкладке Подключение откройте страницу нужного подключения и нажмите кнопку ID.
    • projectId — идентификатор проекта, в котором выполняется запрос. Чтобы получить идентификатор, перейдите в сервис SpeechSense, откройте страницу нужного пространства, на вкладке Проекты откройте страницу нужного проекта и нажмите кнопку ID.
    • query — тело запроса полнотекстового поиска. Поддерживает следующие параметры:

      • text — текст поискового запроса. Вы можете задать слово или фразу. SpeechSense выполнит поиск заданной строки по текстовой расшифровке аудиозаписи или тексту чата.

      • channelNumber — номер канала. Если параметр указан, поиск производится только по текстовой расшифровке аудиозаписи или тексту чата для указанного канала.

        Нумерация каналов в подключениях для чатов:

        • 0 — канал оператора;
        • 1 — канал клиента;
        • 2 — канал бота.

        Нумерация каналов для аудио предустанавливается на уровне подключения и отличается от нумерации каналов для чатов.

    • sortData — параметры сортировки данных в ответе на запрос.

      • fields — список характеристик диалога, по которым производится сортировка. Поддерживает следующие параметры:
        • field — характеристика диалога, по которой производится сортировка.
        • order — порядок сортировки: по возрастанию или убыванию.
        • position — приоритет поля сортировки (при сортировке по нескольким характеристикам диалога одновременно).
    • pageSize — количество документов на странице.

    • pageToken — токен следующей страницы с результатами поискового запроса. 
      Если результаты запроса разделены на несколько страниц, каждая страница имеет свой токен. В ответе на каждый поисковый запрос содержится токен следующей страницы next_page_token (если она существует). Вставьте его в параметр pageToken поискового запроса, чтобы получить следующую страницу с результатами поиска.

    Подробнее о параметрах search-запроса см. в справочнике API.

  2. Задайте API-ключ сервисного аккаунта:

    export API_KEY=<API-ключ_сервисного_аккаунта>
    

    Если вы используете IAM-токен, передайте его вместо API-ключа:

    export IAM_TOKEN=<IAM-токен_сервисного_аккаунта>
    
  3. Отправьте search-запрос к API SpeechSense при помощи cURL:

    curl -X POST https://rest-api.speechsense.yandexcloud.net/speechsense/v1/talks/search \
       -H "Content-Type: application/json" \
       -H "authorization: Api-Key ${API_KEY}" \
       -d @search.json
    

    Где Api-Key — API-ключ для аутентификации. Если вы используете IAM-токен, укажите Bearer ${IAM_TOKEN} вместо Api-Key ${API_KEY}.

    Идентификаторы диалогов, которые удовлетворяют условиям поиска, будут выведены в терминал в JSON-формате.

Примеры запросовПримеры запросов

Пример тела запроса для полнотекстового поискаПример тела запроса для полнотекстового поиска

Например, нужно найти все диалоги с техподдержкой провайдера, в которых оператор предлагал оформить заявку на выезд мастера. JSON-файл с параметрами запроса будет выглядеть так:

{
  "organizationId": "yc.organization****************",
  "spaceId": "f3fuclf1kufs********",
  "connectionId": "eag0u346n4hn********",
  "projectId": "eag9t3rm3o43********",
  "query": {
    "text": "выезд мастера",
    "channelNumber": "0"
  },  
}

Результат выполнения запроса:

{
  "talkIds": [
    "aud95sn63lra********"
  ],
  "talksCount":" 1",
  "nextPageToken": ""
}

Где:

  • talkIds — идентификаторы диалогов, которые удовлетворяют условиям поиска.
  • talksCount — количество диалогов, которые удовлетворяют условиям поиска.
  • nextPageToken — токен следующей страницы с результатами поиска. Если результаты поиска разделены на несколько страниц, этот токен используется в следующем запросе, чтобы запросить следующую страницу. Если это поле вернулось пустым, результаты поиска заканчиваются на текущей странице.

Пример тела запроса для полнотекстового поиска с фильтрацией по параметрамПример тела запроса для полнотекстового поиска с фильтрацией по параметрам

Например, нужно найти все диалоги с техподдержкой провайдера в промежуток между 11:00 и 12:00 24 сентября 2024 года, в которых оператор предлагал оформить заявку на выезд мастера. JSON-файл с параметрами запроса будет выглядеть так:

{
  "organizationId": "yc.organization****************",
  "spaceId": "f3fuclf1kufs********",
  "connectionId": "eag0u346n4hn********",
  "projectId": "eag9t3rm3o43********",
  "query": {
    "text": "выезд мастера",
    "channelNumber": "0"
  },
  "filters": [
    {
      "key": "userMeta.date",
      "dateRange": {
        "fromValue": "2024-09-24T11:00:00Z",
        "toValue": "2024-09-24T12:00:00Z"
      }
    }
  ],  
}

Результат выполнения запроса:

{
  "talkIds": [
    "aud95sn63lra********"
  ],
  "talksCount":" 1",
  "nextPageToken": ""
}

Где:

  • talkIds — идентификаторы диалогов, которые удовлетворяют условиям поиска.
  • talksCount — количество диалогов, которые удовлетворяют условиям поиска.
  • nextPageToken — токен следующей страницы с результатами поиска. Если результаты поиска разделены на несколько страниц, этот токен используется в следующем запросе, чтобы запросить следующую страницу. Если это поле вернулось пустым, результаты поиска заканчиваются на текущей странице.

Была ли статья полезна?

Предыдущая
Поиск данных через gRPC API
Следующая
Фильтрация по параметрам в REST API
Проект Яндекса
© 2025 ООО «Яндекс.Облако»