Поиск ресурсов
Поиск ресурсов
Обзор
API-интерфейс Frame.io поддерживает глубокий фасетный поиск ресурсов по всей учетной записи, дублируя функциональность в веб-приложении. Хотя наиболее полезные фильтры — это команда, проект и статус, фильтры и сортировку можно комбинировать уникальными способами для создания очень конкретных наборов, управляемых API-интерфейсами. В целом все фильтры, кроме account_id, q (запрос) и sort, имеют одинаковую структуру и все объясняются ниже. 
Несоответствие между запрошенным и возвращенным размерами страницы
По состоянию на март 2022 года известна ошибка, влияющая на функцию постраничного вывода API-интерфейса поиска. Пока эта ошибка не устранена, мы не рекомендуем использовать поисковой API-интерфейс для перебора нескольких страниц результатов (т. е. более 100 ресурсов), поскольку запрошенный размер страницы может не соответствовать фактическому количеству возвращенных ресурсов.
Значения по умолчанию
Запрос API-интерфейса для запуска поиска всегда одинаковый:
это всегда один и тот же запрос
POST по адресу https://api.frame.io/v2/search/library
Если не указано явно, значения по умолчанию для настройки поиска следующие:
Об этом руководстве
В этом руководстве представлен процесс создания поискового запроса, который соответствует следующим критериям:
- ресурсы в учетной записи;
- соответствует запросу
"moon"; - находится в конкретном проекте;
- добавление с 1 по 30 апреля 2020 года;
- наличие статуса «Утверждено».
Основная часть нашего поиска будет выглядеть следующим образом:
Учетная запись, запрос и сортировка.
Учетная запись (account_id), запрос (q) и sort — это три основных элемента, которые находятся вне атрибутов filter в поисковом запросе.
Контекст учетной записи
Технически единственный атрибут, необходимый для выполнения поиска, — account_id. Это приведет к выгрузке всех ресурсов (включая папки) в учетной записи с использованием параметров разбивки на страницы по умолчанию (10 ресурсов на страницу, начиная со страницы 1).
Поисковый запрос
Следующим наиболее распространенным (и полезным) атрибутом является сам запрос. Примечание. Поскольку поисковой API-интерфейс Frame.io принимает нулевой запрос, подстановочный знак (*) не требуется. Вы либо ищете что-то конкретное, либо запрашиваете (возможно, отфильтрованную) сортировку всех ресурсов в учетной записи.
В нашем случае мы будем искать слово «луна».
Сортировка
Frame.io поддерживает множество различных параметров сортировки. Синтаксис порядка сортировки одинаков для всех параметров:
- Есть направление сортировки по умолчанию.
- Чтобы изменить это направление на противоположное, добавьте перед значением сортировки знак минус
-.
Например, для сортировки в обратном алфавитном порядке (от Я до А) нужно сообщить "sort": "-name". Операция сортировки по умолчанию — «Relevance». Соответственно, ее не нужно сообщать, и она будет применена, если атрибут sort не указан.
Фильтры и разбивка на страницы
Фильтры — это самая сложная и в то же время самая эффективная функция поиска ресурсов Frame.io. Фильтры записываются в одном объекте filter и следуют одной схеме с операцией (op) и значением. Фильтры будут использовать следующие общие сокращения, при этом варианты эквивалентности, отличные от «equals», зарезервированы для запросов даты и размера:
eq— равноlt— менее чемgt— более чемlte— менее чем или равноgte— более чем или равноmatch— точное соответствие, используемое только для фильтров «Добавляющий пользователь» и «Тип файла»
Например, фильтр для сопоставления с известным project_id будет создан следующим образом:
Параметры и операции
В следующей таблице описаны параметры и операции, связанные с каждым типом фильтра.
Добавляющий пользователь должен быть активным участником учетной записи для заполнения индекса
Поиск создателей, которые больше не являются участниками учетной записи, работать не будет, поскольку этот пользователь больше не находится в индексе поиска пользователей.
Чтобы продолжить создание запроса, теперь можно добавить фильтр для ресурсов, которые:
- находится в конкретном проекте;
- добавлены с 1 по 30 апреля 2020 года;
- помечены как «Утверждено».
Разбивка на страницы
Конечная точка поиска разбивает на страницы точно так же, как и любая другая конечная точка, через атрибуты page_size и page, которые находятся на внешнем слое тела запроса. Подробнее о разбивке на страницы см. в отдельном руководстве здесь.