Ceci est une ancienne révision du document !


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.

Scrutari propose trois types de filtres :

  • À partir des mots-clés indexant les fiches
  • À partir des dates des fiches
  • À partir du résultat d'une recherche précédente

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

Si le paramètre corpuslist est par ailleurs présent, le filtre se limitera aux fiches des corpus indiqués.

Filtre sur l'indexation

Le filtre sur un mot-clé 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 la date

Le filtre sur une date est indiqué par le préfixe date: suivant da 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 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:20130416-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)

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 flt-indexation, flt-date et flt-qid/ L'utilisation de ces raccourcis permet de se dispenser d'indiquer le préfixe principal

  • flt-indexation permet d'éviter d'utiliser le préfixe motcle: pour les mots-clés
  • flt-date permet d'éviter d'utiliser le préfixe date: pour les dates
  • flt-qid permet d'éviter le préfixe qid: pour les recherches
  • flt-add permet d'éviter le préfixe add: pour les derniers ajouts

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

flt-indexation=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 ».

Par exemple, les deux paramètres suivants indiquent une recherche sur les fiches de 2013 indexées par les mots-clés 254, 345 ou 789 :

flt-indexation=254 || 345 || 789
flt-date=2013
serveurscrutari/json/filtersyntax.1412352238.txt.gz · Dernière modification: 2014/10/03 18:03 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0