Recherche de ressources

Aperçu

L’API de Frame.io prend en charge la recherche approfondie et à facettes de ressources dans l’ensemble d’un compte, reproduisant la fonctionnalité de l’application web.Bien que les filtres les plus couramment utiles soient l’équipe, le projet et le statut, les filtres et le tri peuvent être combinés de manière unique pour produire des ensembles extrêmement spécifiques pilotés par API.En général, tous les filtres hormis account_id, q (requête) et sort suivent la même structure, et tous sont expliqués ci-dessous. <img alt=“search-filters.png” src=“file:docs/pages/v2/images/cc63ea2-search-filters.png”> <Warning title=“Discordance entre les tailles de page demandées et renvoyées”>

Depuis mars 2022, il existe un bug connu affectant la fonction de pagination de l’API de recherche.Tant que ce bug ne sera pas corrigé, nous ne recommandons pas d’utiliser l’API de recherche pour itérer sur plusieurs pages de résultats (c’est-à-dire plus de 100 ressources), car la taille de page demandée peut ne pas correspondre au nombre réel de ressources renvoyées.

</Warning>

Valeurs par défaut

La requête API pour déclencher une recherche est toujours la même :

C’est toujours la même requête

POST vers https://api.frame.io/v2/search/library

Si elles ne sont pas fournies explicitement, les valeurs par défaut pour le réglage de recherche sont les suivantes :

AttributValeur par défautDescription
page_size1010 ressources seront renvoyées par page.
page1La requête renverra la première page de la réponse.
sortrelevance« Pertinence » tente de classer les ressources en fonction d’un ensemble d’attributs spécifiquement réglé.” ] } ```En l’absence d’une requête, la pertinence est fortement biaisée vers la récence de chargement.

À propos de ce Guide

Ce Guide explique le processus de création d’une requête de recherche qui correspond à :

  • Ressources dans un Compte
  • Qui correspond à la requête « moon »
  • Se trouve dans un Projet spécifique
  • A été chargé entre le 1er et le 30 avril 2020
  • Et a été « Approuvé »

Le corps de notre recherche ressemblera finalement à ceci :

1\{
2 "account_id": "\<account_id>",
3 "q": "moon",
4 "sort": "name",
5 "filter": \{
6 "inserted_at": [
7 \{
8 "op": "gte",
9 "value": "2020-04-01T04:00:00.000Z"
10 },
11 \{
12 "op": "lte",
13 "value": "2020-04-30T03:59:59.999Z"
14 }
15 ],
16 "project_id": \{
17 "op": "eq",
18 "value": "\<project_id>"
19 },
20 "label": \{
21 "op": "eq",
22 "value": "approved"
23 }
24 },
25 "page_size": 10,
26 "page": 1
27}

Compte, requête et tri

Le Compte (account_id), la requête (q) et le tri sont les trois éléments de base les plus fondamentaux qui se situent en dehors de tous les attributs de filtre dans une requête de recherche.

Contexte du compte

Techniquement, le seul attribut dont vous avez besoin pour effectuer une recherche est un account_id. Cela permettra simplement de récupérer chaque ressource (y compris les dossiers) du Compte, avec les valeurs de pagination par défaut (10 ressources par page, en commençant à la page 1).

1\{
2 "account_id": "\<account_id>"
3}

Requête de recherche

L’attribut suivant le plus courant (et le plus utile) à inclure est la requête elle-même. Remarque : parce que l’API de recherche de Frame.io accepte une requête nulle, il n’y a pas besoin d’une requête générique (*). Soit vous recherchez quelque chose, soit vous demandez un tri (potentiellement filtré) de toutes les ressources d’un Compte.

Dans notre cas, nous rechercherons le terme « moon ».

1\{
2 "account_id": "\<account_id>",
3 "q": "moon"
4}

Tri

<img alt=“sort.png” src=“file:docs/pages/v2/images/9b61b29-sort-options.png”>

Frame.io prend en charge plusieurs options de tri différentes. La syntaxe pour l’ordre de tri est similaire selon les options :

  • Il y a une direction de tri par défaut
  • Pour inverser cette direction, préfixez la Valeur de tri avec un - négatif

```json { “trancreatedText”: [ ” Par exemple, pour trier dans l’ordre alphabétique inversé (Z à A), vous devez déclarer \&quot;sort\&quot;: \&quot;-name\&quot;.L’opération de tri par défaut est « Pertinence ».Elle n’a donc pas besoin d’être déclarée et sera supposée si aucun attribut sort n’est fourni.

Option de triAttributDirection par défaut
Pertinences.o.s.o.
Date de chargementinserted_atPlus ancien en premier
NomnameA à Z
TaillefilesizePlus petit en premier
Expéditeurcreator.nameA à Z
Ainsi, pendant que nous créons notre requête, nous pouvons maintenant ajouter notre sort pour name, A à Z :
1\{
2 "account_id": "\<account_id>",
3 "q": "moon",
4 "sort": "name"
5}

Filtres et pagination

Les filtres constituent la fonctionnalité la plus délicate, mais aussi la plus puissante de la recherche d’asset Frame.io.Les filtres sont écrits dans un seul objet filter et suivent tous le même modèle d’opération (op) et de valeur.Les filtres utilisent les abréviations courantes suivantes, avec des options d’équivalence autres que « égal à » réservées aux requêtes de date et de taille :

  • eq — égal à” ] } ```
  • lt — inférieur à
  • gt — supérieur à
  • lte — inférieur ou égal à
  • gte — supérieur ou égal à
  • match — correspondance exacte, utilisée uniquement pour les filtres Uploader et Filetype

Par exemple, un filtre pour correspondre à un project_id connu serait construit comme suit :

1\{
2 "filter": \{
3 "project_id": \{
4 "op": "eq",
5 "value": "\<project_id>"
6 }
7 }
8}

OPTIONS et opérations

Le tableau suivant décrit les OPTIONS et les opérations associées à chaque type de filtre.

Option de filtreAttributOpérations prises en chargeValeurs prises en charge
Archivéarchivedeqvrai, faux
Date de chargementinserted_ateq, lt, gt, lte, gte\<datetime>\</datetime> (ISO-8601, UTC)
Supprimédeletedeqvrai, faux
Type de fichierfiletypecorrespondance\<mime type="">\</mime>
Privéprivéeqvrai, faux
Projetproject_ideq\<project_id>\</project_id>
Taillefilesizeeq, lt, gt, lte, gtetaille (en octets)
Statutlibelléeqaucun, en_cours, nécessite_révision, approuvé
Équipeteam_ideq\<team_id>\</team_id>
Typeasset_typeeqaudio, document, dossier, image, autre, flux, vidéo
Utilisateur de chargementcreator.namecorrespondance\<name>\</name>

<Warning title=“```json { “trancreatedText”: [ “Le chargeur doit être un membre actif du compte pour alimenter l’index”>

La recherche de créateurs qui ne sont plus membres du compte ne fonctionnera pas car cet utilisateur ne figure plus dans l’index de recherche utilisateur.

</Warning>

Pour continuer à créer notre requête, nous pouvons maintenant ajouter un filtre pour les ressources qui sont :

  • Dans un projet spécifique
  • Chargées entre le 1er et le 30 avril 2020
  • Marquées comme « Approuvées »
1\{
2 "account_id": "\<account_id>",
3 "q": "moon",
4 "sort": "name",
5 "filter": \{
6 "inserted_at": [
7 \{
8 "op": "gte",
9 "value": "2020-04-01T04:00:00.000Z"
10 },
11 \{
12 "op": "lte",
13 "value": "2020-04-28T03:59:59.999Z"
14 }
15 ],
16 "project_id": \{
17 "op": "eq",
18 "value": "\<project_id>"
19 },
20 "label": \{
21 "op": "eq",
22 "value": "approved"
23 }
24 }
25}

<Note title=“Pagination”> Le point d’entrée de recherche pagine exactement comme tout autre point d’entrée, via les attributs page_size et page qui se trouvent à la couche la plus externe du corps de la requête.Pour plus de détails sur la pagination, veuillez consulter le guide séparé ici. ” ] } ``` </Note>