Syntaxe des filtres

Définir un filtre permet de mettre en place une préselection des fiches : la recherche ne portera que sur les fiches répondant préalablement aux critères de cette sélection. Les filtres peuvent être également utilisés lors de la simple sélection de fiches (sans recherche sur un terme particulier), voir la requête JSON type = fiche.

Le nom du paramètre pour préciser le filtre est flt

On rappelera que la recherche peut aussi être limitée par les paramètre corpuslist, baselist et corpuslist qui portent, eux, sur les corpus retenus pour la recherche.

Filtre sur un mot-clé

Le filtre sur un mot-clé filtre toutes les fiches indexées par ce mot-clé. Il est indiqué par le préfixe motcle: suivi de l'identifiant du mot-clé, celui-ci pouvant être sous la forme du code du mot-clé, sous la forme de l'URI ou sous une forme mixte code d'un mot-clé, comme indiqué à la page Paramètres communs.

Par exemple :

flt=motcle:256
flt=motcle:/e17a05b0-c45e-11d8-9669-0800200c9a66/gouvafrique/geo/24
flt=motcle:2/geo/24

Filtre sur un thésaurus

Le filtre sur un thésaurus filtre toutes les fiches indexées par un mot-clé de ce thésaurus. Il est indiqué par le préfixe thesaurus: suivi de l'identifiant du thésaurus, celui-ci pouvant être sous la forme du code du thésaurus, sous la forme de l'URI ou sous une forme mixte code d'un thésaurus, comme indiqué à la page Paramètres communs.

Par exemple :

flt=thesaurus:33
flt=thesaurus:/e17a05b0-c45e-11d8-9669-0800200c9a66/gouvafrique/geo
flt=thesaurus:2/geo

Filtre sur la date

Le filtre sur une date est indiqué par le préfixe date: suivi de la définition d'une période.

La syntaxe d'une période est inspirée de la norme ISO. Une période peut être précisée soit par une indication temporelle seule ou par deux indications temporelles séparées par une barre oblique. Par indication temporelle, on entend une des expressions suivantes :

  • Une année
  • Un semestre (année suivi d'un tiret et S1 (premier semestre) ou S2 (deuxième semestre))
  • Un trimestre (année suivi d'un tiret et T1, T2, T3, T4 pour les quatre trimestres)
  • Un mois (année suivi du mois sur deux chiffres avec un tiret séparateur)
  • Un jour (format ISO : année tiret mois tiret jour)

Voici une série d'exemples :

flt=date:2012  //conserve uniquement les fiches de 2012
flt=date:2012/2012-05 //conserve les cinq premiers mois de 2012
flt=date:2011-T2/2012-T1 // du deuxième trimestre 2011 au premier trimestre 2012
flt=date:2013-02 //mois de février 2013
flt=date:2013-04/2013-12-05 //du mois d'avril 2013 au 5 décembre 2013

Pour indiquer une période minimum, il faut donner une indication temporelle suivi d'une barre oblique et d'un tiret. Pour une période maxium, il faut précéder l'indication temporelle par un tiret et une barre oblique.

flt=date:2011/- //de 2011 à nos jours
flt=date:-/2013-11 //jusqu'au mois de novembre 2013

Enfin, il existe une valeur spéciale NULL qui permettre d'établir un filtre sur les fiches sans date.

Filtre sur un rectangle de coordonnées

Ce filtre s'applique aux fiches qui possèdent des coordonnées géographiques. Il est indiqué par le préfixe bbox: suivi de la définition de la portion qui suit la syntaxe de l'API OpenStreetmap (http://wiki.openstreetmap.org/wiki/Bbox) à savoir quatre valeurs dans l'ordre suivant : left, bottom, right, top.

bottom doit êre d'une valeur inférieure à top. left peut être supérieur à right lorsque le rectangle chevauche la ligne de changement de date.

flt=bbox:5.9559,45.818,10.4921,47.8084 //Rectangle englobant la Suisse

Le filtre bbox peut avoir une valeur particulière * qui indique que le filtre se fait sur toutes les fiches qui possèdent des coordonnées géographiques .

flt=bbox:* //Uniquement les fiches qui ont des coordonnées géographiques

Filtre aux alentours d'un point

Ce filtre permet de sélectionner des fiches disposant de coordonnées géographiques situées dans un rayon donné autour d'un point géographique. Il est indiqué par le préfixe circle: suivi de trois valeurs : la latitude du point, la longitude du point, le rayon en kilomètres.

flt=circle:48.856578,2.351828,50 //Fiches dans un rayon de cinquante kilomètres autour de Paris

Filtre sur une recherche précédente

Le filtre sur une recherche précédente est indiqué par le préfixe qid: suivi de l'identifiant de la recherche (fourni par la propriéte qId de l'objet ficheSearchResult dans la requête JSON type = q-fiche. Ce filtre n'impacte que les fiches sur lesquelles porte la nouvelle recherche, les filtres et options de la recherche précédente ne sont pas pris en compte.

Exemple :

flt=qid:2013-0416-2229-1

Filtre sur les derniers ajouts dans la base

Ce filtre permet de sélectionner des fiches parmi les dernières rajoutées dans la base. Il est indiqué par le préfixe add: que l'on devra faire suivre par une des formes suivantes :

  • d-N où N est un entier strictement positif : sélectionne les fiches ajoutées les N derniers jours (en partant du jour en cours)
  • f-P où P est un entier strictement positif : sélectionne les P dernières fiches ajoutées (au minimum, il peut y en avoir plus car les fiches d'une même mise à jour sont toutes rajoutées même si cela dépasse ce minimum)
  • d-N,f-P où N et P sont deux entiers strictement positifs : sélectionne d'abord les fiches ajoutées les N derniers jours puis si cela ne suffit pas, remonte les jours suivants jusqu'à obtenir P fiches (cela garantit qu'il y a toujours au minimum P fiches)

Exemple :

flt=add:d-5,f-30 (5 derniers jours avec au minimum 30 fiches, le résultat peut être largement supérieur à 30)

Filtre sur un corpus

Le filtre sur un corpus filtre toutes les fiches appartenant à un corpus donné. Il est indiqué par le préfixe corpus: suivi de l'identifiant du corpus, celui-ci pouvant être sous la forme du code du corpus, sous la forme de l'URI ou sous une forme mixte (code de la base + nom du corpus), comme indiqué à la page Paramètres communs.

Par exemple :

flt=corpus:33
flt=corpus:/e17a05b0-c45e-11d8-9669-0800200c9a66/ess/document
flt=corpus:1/document

Note : le filtre sur un corpus est moins efficace que l'utilisation du paramètre corpuslist qui filtre les fiches en amont de la recherche alors que celui-ci les filtre en aval. corpuslist a pour défaut d'être tout ou rien (cette fiche est dans le corpus ou non), ce filtre corpus: a l'avantage de pouvoir être combiné à d'autres filtres.

Filtre sur une base

Le filtre sur une base filtre toutes les fiches appartenant à une base donnée. Il est indiqué par le préfixe base: suivi de l'identifiant de la base, celui-ci pouvant être sous la forme du code de la bose, sous la forme de l'URI, comme indiqué à la page Paramètres communs.

Par exemple :

flt=base:1
flt=base:/e17a05b0-c45e-11d8-9669-0800200c9a66/ess

Note : le filtre sur une base est moins efficace que l'utilisation du paramètre baselist qui filtre les fiches en amont de la recherche alors que celui-ci les filtre en aval. baselist a pour défaut d'être tout ou rien (cette fiche est dans la base ou non), ce filtre base: a l'avantage de pouvoir être combiné à d'autres filtres.

Filtre sur une langue

Le filtre sur une langue filtre toutes les fiches dans une langue donnée. Il est indiqué par le préfixe lang:. La valeur du filtre doit être un code de langue valide. Par exemple :

flt=lang:fr

Note : le filtre sur une langue est moins efficace que l'utilisation du paramètre langlist qui filtre les fiches en amont de la recherche alors que celui-ci les filtre en aval. langlist a pour défaut d'être tout ou rien (cette fiche est dans la langue ou non), ce filtre lang: a l'avantage de pouvoir être combiné à d'autres filtres.

Filtre sur un attribut

Il est possible de faire un filtre sur n'importe quel attribut en utilisant le nom de l'attribut suivi d'un deux-points. Le caractère * peut être utilisé en début ou en fin de chaine pour filtrer une valeur commençant ou terminant par la valeur demandée.

Le caractère * peut être utilisé seul pour filtrer les fiches qui possèdent l'attribut, quelque soit la valeur.

Par exemple :

flt=sct:authors:* //toutes les fiches qui ont l'attribut sct:authors
flt=fph:nomenclature:F3* //Toutes les fiches qui ont un attribut fph:nomenclature commençant par F3

Note : ce filtre se comporte différmment de l'utilisation des attributs dans la recherche avancée. Dans le cas du filtre, la recherche se fait sur le terme exact (pas de prise en compte de la casse, présence de l'espace prise en compte) alors que dans le cas d'une recherche casse et accents ne sont pas pris en compte.

Combinaison de filtres

Les filtres peuvent être combinés en utilisant les opérateurs logiques suivants :

  • && : Et
  • || : Ou
  • ! : Non

On utilise les parenthèses pour les regroupements.

Le filtre de l'exemple suivant va sélectionner les fiches de 2013 qui sont soit indexées par le mot-clé 254 soit n'appartiennent pas à la recherche 20130416-3.

flt=date:2013 && (motcle:254 || !qid:20130416-3)

Raccourcis de filtre

En plus du paramètre flt, il est possible d'utiliser les raccourcis suviant qui permettent de se dispenser d'indiquer le préfixe principal :

  • flt-motcle évite d'utiliser le préfixe motcle: pour les mots-clés (anciennement flt-indexation qui est toujours accepté)
  • flt-thesaurus évite d'utiliser le préfixe thesaurus: pour les thésaurus
  • flt-date évite d'utiliser le préfixe date: pour les dates
  • flt-qid évite le préfixe qid: pour les recherches
  • flt-add évite le préfixe add: pour les derniers ajouts
  • flt-bboxévite le préfixe bbox: pour les rectangles de coordonnées
  • flt-circle évite le préfixe circle: pour les coordonnées aux alentours d'un point
  • flt-corpus évite le préfixe corpus: pour l“appartenance à un corpus
  • flt-base évite le préfixe base: pour l'appartenance à une base
  • flt-langévite le préfixe lang: pour la langue de la fiche
  • flt-{nom de l'attribut} : évite d'utiliser le nom de l'attribut

L'exemple précédent peut donc s'écrire également :

flt-motcle=date:2013 && (254 || !qid:20130416-3)
flt-date=2013 && (motcle:254 || !qid:20130416-3)
flt-qid=date:2013 && (motcle:254 || !20130416-3)

Ces raccourcis sont utiles lorsque l'on combine un nombre important de filtres du même type.

Ces raccourcis peuvent être utilisés en même temps et ils se cumulent également avec le paramètre flt. Dans ce cas-là, l'opération logique entre les filtres est « Et ». Ces raccourcis ainsi que le paramètre flt ont comme particularité de pouvoir être répétés dans la requête, toutes les valeurs sont prises en compte. Les deux expressions ci-dessous sont équivalentes :

<code javascript> ?flt-motcle=254&flt-motcle=307 ?fl-motcle=254+%26%26+307 (254+%26%26+307 est le codage URI de 254 && 307) </code javascript>

serveurscrutari/json/filtersyntax.txt · Dernière modification: 2017/01/17 15:38 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0