Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveurscrutari:json:filtersyntax [2013/04/17 18:06]
vincent [Combinaison de filtres]
serveurscrutari:json:filtersyntax [2017/01/17 15:38] (Version actuelle)
vincent [Filtre sur une recherche précédente]
Ligne 2: Ligne 2:
  
 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 [[[serveurscrutari:​json:​type_fiche|type = fiche]]. 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 [[[serveurscrutari:​json:​type_fiche|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// Le nom du paramètre pour préciser le filtre est //flt//
  
-Si le paramètre //​corpuslist// ​est par ailleurs présentle filtre se limitera aux fiches des corpus ​indiqués.+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 l'​indexation ​=====+===== Filtre sur un mot-clé ​=====
  
-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 [[serveurscrutari:​json:​commun|Paramètres communs]].+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 [[serveurscrutari:​json:​commun|Paramètres communs]].
  
 Par exemple : Par exemple :
Ligne 23: Ligne 17:
 flt=motcle:/​e17a05b0-c45e-11d8-9669-0800200c9a66/​gouvafrique/​geo/​24 flt=motcle:/​e17a05b0-c45e-11d8-9669-0800200c9a66/​gouvafrique/​geo/​24
 flt=motcle:​2/​geo/​24 flt=motcle:​2/​geo/​24
 +</​code>​
 +
 +===== 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 [[serveurscrutari:​json:​commun|Paramètres communs]].
 +
 +Par exemple :
 +
 +<code javascript>​
 +flt=thesaurus:​33
 +flt=thesaurus:/​e17a05b0-c45e-11d8-9669-0800200c9a66/​gouvafrique/​geo
 +flt=thesaurus:​2/​geo
 </​code>​ </​code>​
  
 ===== Filtre sur la date ===== ===== 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.+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 : 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 :
Ligne 55: Ligne 61:
  
 Enfin, il existe une valeur spéciale //NULL// qui permettre d'​établir un filtre sur les fiches sans date. 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.
 +
 +<code javascript>​
 +flt=bbox:​5.9559,​45.818,​10.4921,​47.8084 //Rectangle englobant la Suisse
 +</​code>​
 +
 +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 .
 +
 +<code javascript>​
 +flt=bbox:* //​Uniquement les fiches qui ont des coordonnées géographiques
 +</​code>​
 +
 +===== 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.
 +
 +<code javascript>​
 +flt=circle:​48.856578,​2.351828,​50 //Fiches dans un rayon de cinquante kilomètres autour de Paris
 +</​code>​
 +
  
 ===== Filtre sur une recherche précédente ===== ===== 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 [[serveurscrutari:​json:​type_qfiche|type = q-fiche]].+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 [[serveurscrutari:​json:​type_qfiche|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.
  
-Rappelons ​que cet identifiant ​est valable 24 heures ​au minimum.+Exemple : 
 + 
 +<code javascript>​ 
 +flt=qid:​2013-0416-2229-1 
 +</​code>​ 
 + 
 +===== 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 : Exemple :
  
 <code javascript>​ <code javascript>​
-flt=qid:20130416-1+flt=add:d-5,f-30 (5 derniers jours avec au minimum 30 fiches, le résultat peut être largement supérieur à 30)
 </​code>​ </​code>​
 +
 +===== 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 [[serveurscrutari:​json:​commun|Paramètres communs]].
 +
 +Par exemple :
 +
 +<code javascript>​
 +flt=corpus:​33
 +flt=corpus:/​e17a05b0-c45e-11d8-9669-0800200c9a66/​ess/​document
 +flt=corpus:​1/​document
 +</​code>​
 +
 +**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 [[serveurscrutari:​json:​commun|Paramètres communs]].
 +
 +Par exemple :
 +
 +<code javascript>​
 +flt=base:1
 +flt=base:/​e17a05b0-c45e-11d8-9669-0800200c9a66/​ess
 +</​code>​
 +
 +**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 :
 +
 +<code javascript>​
 +flt=lang:fr
 +</​code>​
 +
 +**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 :
 +
 +<code javascript>​
 +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
 +</​code>​
 +
 +**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 ===== ===== Combinaison de filtres =====
Ligne 88: Ligne 187:
 ===== Raccourcis de filtre ===== ===== 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 +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-indexation// permet d'​éviter ​d'​utiliser le préfixe //motcle:// pour les mots-clés +  * //flt-motcle// évite d'​utiliser le préfixe ​//motcle:// pour les mots-clés (anciennement ​//flt-indexation// qui est toujours accepté) 
-  * //​flt-date// ​permet d'​éviter ​d'​utiliser le préfixe //date:// pour les dates +  * //flt-thesaurus// évite ​d'​utiliser le préfixe //thesaurus:// pour les thésaurus 
-  * //​flt-qid// ​permet d'​éviter ​le préfixe //qid:// pour les recherches.+  * //​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 : L'​exemple précédent peut donc s'​écrire également :
  
 <code javascript>​ <code javascript>​
-flt-indexation=date:2013 && (254 || !qid:​20130416-3)+flt-motcle=date:2013 && (254 || !qid:​20130416-3)
 flt-date=2013 && (motcle:254 || !qid:​20130416-3) flt-date=2013 && (motcle:254 || !qid:​20130416-3)
 flt-qid=date:​2013 && (motcle:254 || !20130416-3) flt-qid=date:​2013 && (motcle:254 || !20130416-3)
Ligne 103: Ligne 210:
 Ces raccourcis sont utiles lorsque l'on combine un nombre important de filtres du même type. 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 également avec le paramètre //flt//. Dans ce cas-là, l'​opération logique entre les filtres est « Et ».+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 :
  
-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 : 
  
 <code javascript>​ <code javascript>​
-flt-indexation=254 || 345 || 789 +?flt-motcle=254&flt-motcle=307 
-flt-date=2013 +?​fl-motcle=254+%26%26+307 (254+%26%26+307 est le codage URI de 254 && 307) 
-</​code>​+</​code ​javascript> 
 + 
 + 
  
  
serveurscrutari/json/filtersyntax.1366214794.txt.gz · Dernière modification: 2013/04/17 18:06 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0