Changeset 82771 in spip-zone


Ignore:
Timestamp:
May 27, 2014, 3:21:49 PM (5 years ago)
Author:
rastapopoulos@…
Message:

Documentation des deux nouveaux critères {filtermono} et {filtermultijson}.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/indexer/trunk/doc/boucle_sphinx.md

    r82622 r82771  
    195195    {filter #ENV{favs}, @valeur <= LENGTH(properties.share)}
    196196
    197 
     197----
     198
     199Des filtres spécifiques à des cas courants de comparaisons sont pré-programmés, ce qui évite de devoir connaître et écrire soi-même le code Sphinx des tests.
     200
     201### Filtre pour un champ n'ayant qu'une valeur (mono-valué)
     202* @syntaxe `{filtermono test, champ, valeur(s)[, comparaison]}`
     203
     204Le test en premier permet de passer n'importe quelle valeur (avec filtre ou pas) qui permettra de dire si on va ajouter le filtre ou pas. Le cas courant est de mettre la valeur d'un paramètre de l'URL, et s'il est présent et rempli, on ajoute le filtre.
     205
     206La comparaison est optionnelle, et vaut "=" par défaut.
     207
     208Le champ de valeur peut être une liste de plusieurs valeurs, et dans ce cas le test sera un "OU" sur chacune des comparaisons !
     209
     210```
     211{filtermono #ENV{statut}, properties.statut, #ENV{statut,publie}}
     212{filtermono #ENV{annee}, year(date), #LISTE{2014,2013}} => l'une OU l'autre
     213{filtermono #ENV{favs}, length(properties.share), #ENV{favs}, '>='}
     214```
     215
     216### Filtre pour un champ JSON ayant plusieurs valeurs (multi-valué)
     217* @syntaxe `{filtermultijson test, champ, valeur(s)}`
     218
     219Mêmes principes que pour le critère précédent sauf que le critère cherche si les valeurs font partie du tableau "champ" (qui doit donc être une liste de plusieurs valeurs).
     220
     221Si on donne plusieurs valeurs, le critère fera un "ET" entre les tests. Si l'une de ces valeurs est elle-même un tableau, le critère fera un "OU" (avec la commande Sphinx IN).
     222
     223- Si les valeurs sont `#LISTE{mot1, mot2, mot3}` : ça cherchera les documents qui ont mot1 ET mot2 ET mot3.
     224- Si les valeurs sont `#LISTE{mot1, #LISTE{mot2, mot3}}` : ça cherchera les documents qui ont mot1 ET (mot2 OU mot3).
    198225
    199226PAGES
Note: See TracChangeset for help on using the changeset viewer.