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érateur Signification
= É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')

Revision #2
Created 2025-07-31 15:43:16 UTC by Admin
Updated 2025-07-31 15:44:31 UTC by Admin