Skip to main content

Filtres

Pour les opérations doc, distinct et count, il est possible de filtrer les résultats selon n’importe quel(s) champ(s) du contexte.

Les filtres doivent respecter les syntaxes suivantes :

  • aucun espace n’est autorisé au sein d’un filtre
  • un critère = <champ><opérateur_de_comparaison><valeur(s)>
  • si plusieurs critères sont indiqués dans un filtres, ils doivent être encadrés avec des parenthèses et séparés par « & » pour signifier « et » ou « | » pour signifier « ou ».
  • plusieurs niveaux de parenthèses sont autorisés pour prioriser les et/ou.

Cas particuliers

Un champ seul (sans opérateur de comparaison ni valeur) signifie « le champ n’est pas vide »

  Exemple : (cop_mechowned)

Signifie que me % mechowned est renseigné

Un champ seul (sans opérateur de comparaison ni valeur) précédé du symbole « ! » signifie « le champ est vide »

  Exemple : (!cop_mechowned)

Signifie que le % mechowned n'est pas renseigné

Opérateurs de comparaison

OpérateurSignification
=Égal à
<>Différent de
>Supérieur (strictement) à
<Inférieur (strictement) à
>=Supérieur ou égal à
Inférieur ou égal à
~Contient (spécial)
~~Contient (spécial) sans distinction MAJ/min

Contient (spécial)

Cet opérateur est puissant mais complexe à utiliser. Il permet de vérifier qu’un champ correspond à un motif exprimé comme une « regex » ou « regexp » ou « expression régulière » (Internet fourmille de ressources sur les regex).

Exemple 

Le rôle est A ou C ou CA :

  filter=cop_role~’^(A|C|CA)$’

Équivalent à

  filter=(cop_role='A')|(cop_role='C')|(cop_role='CA')

Le titre commence par « JAMES BOND » :

  filter=oeu_titre~'^JAMES BOND'

Exemples

Le rôle est A :

  filter=cop_role='A'

Le rôle est A ou C :

  filter=(cop_role='A')|(cop_role='C')

Le rôle est A et le lettrage est A :

  filter=(cop_role='A')&(cop_chain='A')

Le (rôle est A ou C) et (le lettrage est A) :

  filter=((cop_role='A')|(cop_role='C'))&(cop_chain='A')