Requête (Query)
L’API de recherche utilise un analyseur de requêtes pour traduire les paramètres des URL vers le moteur de recherche (actuellement ElasticSearch) utilisé par ORTOLANG. L’utilisation d’une requête permet de filtrer une liste d’éléments. Chaque élément est un document JSON indexé par le moteur de recherche.
Champ (Field)
Un champ correspond à un attribut spécifique du document JSON (https://en.wikipedia.org/wiki/JSON). Afin d’interroger un document, un champ peut être filtré en utilisant une notation par points telle que a.b.c où a, b et c sont des attributs. Par exemple, le format d’attribut d’un document JSON oai_dc JSON peut être atteint avec le champ streamContent.format.value.
Un champ peut être suivi d’un marqueur :
- [] : permet de rechercher dans un tableau (https://www.elastic.co/guide/en/elasticsearch/reference/5.4/query-dsl-nested-query.html)
- * : permet de rechercher le préfixe d’une phrase (https://www.elastic.co/guide/en/elasticsearch/reference/5.4/query-dsl-match-query-phrase-prefix.html).
Si aucun marqueur ne suit le champ, il correspond à un terme (https://www.elastic.co/guide/en/elasticsearch/reference/5.4/query-dsl-term-query.html).
Chaque champ doit figurer dans les documents correspondants.
Termes prédéfinis
Certains termes sont interprétés par l’analyseur de requêtes.
- size : permet de limiter le nombre de documents retournés
- includes : un tableau précisant les champs retournés pour chaque document
- excludes : un tableau spécifiant les champs exclus
- orderProp : définit le champ utilisé pour le tri
- orderDir : détermine la direction du tri
- aggregation : précise les champs renvoyés dans la section agrégations (voir https://www.elastic.co/guide/en/elasticsearch/reference/5.4/search-aggregations.html).
Les autres termes sont utilisés pour le filtrage et doivent correspondre à un champ du document.
Metadata
L’API de recherche permet de filtrer une liste d’objets de métadonnées en envoyant une requête HTTP GET.
URL de la ressource : https://repository.ortolang.fr/api/search/metadata
Collection Postman : Search.postman_collection.json