Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
serveurscrutari:json:qsyntax [2015/03/15 17:09] vincent [Limitation de la recherche] |
serveurscrutari:json:qsyntax [2015/03/15 19:18] vincent [Recherche composée] |
||
---|---|---|---|
Ligne 66: | Ligne 66: | ||
</code> | </code> | ||
- | ==== Limitation de la recherche ==== | + | ==== Limitation de l'étendue d'une recherche ==== |
Il est possible de limiter la recherche pour un mot particulier en le préfixant avec un nom de champ. Les préfixes possibles sont : | Il est possible de limiter la recherche pour un mot particulier en le préfixant avec un nom de champ. Les préfixes possibles sont : | ||
Ligne 110: | Ligne 110: | ||
+ | ===== Recherche composée ===== | ||
+ | Une recherche composée permet de combiner la simplicité de la syntaxe d'une recherche simple avec les possibilités de limitation de l'étendue d'une recherche offertes dans la recherche avancée. La recherche composée permet de concevoir des formulaires de recherche avec des champs de saisie différents pour les différents champs (par exemple, un champ pour les titres et un champ pour les auteurs). Un exemple de recherche composée en action peut être vue sur la page de test suivante : http://test.scrutari.net/index-multi.php. | ||
+ | La recherche composée est une exception au caractère obligatoire du paramètre //q//. Il peut toujours être utilisé mais il est complété voire complété par une série de paramètres commençant par //q_//, les caractères après //q_// constituant le nom de la sous-recherche. | ||
+ | |||
+ | Par exemple, le formulaire de la page http://test.scrutari.net/index-multi.php a quatre champs de saisie qui ont les noms suivants : | ||
+ | |||
+ | <code javascript> | ||
+ | q_1 // Champ « Titre, sous-titre » | ||
+ | q_2 // Champ « Auteurs » | ||
+ | q_3 // Champ « Mots-clés » | ||
+ | q_4 // champ « Autres champs » | ||
+ | </code> | ||
+ | |||
+ | Dans l'exemple, les noms sont des numéros mais cela n'a rien d'obligatoire. On peut avoir un paramètre portant le nom //q_entete// par exemple. | ||
+ | |||
+ | Pour que la recherche composée soit intéressante, il faut préciser pour chaque paramètre son étendue. Cela se fait avec un autre paramètre //q-scope_// suivi du nom. Ce qui donne dans notre exemple : | ||
+ | |||
+ | |||
+ | <code javascript> | ||
+ | q_1 // Champ « Titre, sous-titre » | ||
+ | q-scope_1=titre,soustitre | ||
+ | q_2 // Champ « Auteurs » | ||
+ | q-scope_2=sct:authors | ||
+ | q_3 // Champ « Mots-clés » | ||
+ | q-scope_3=motcle | ||
+ | q_4 // champ « Autres champs » | ||
+ | q-scope_4=supplement,!sct:authors // !sct:authors sert à exclure l'attribut sct:authors des champs supplémentaires | ||
+ | </code> | ||
+ | |||
+ | Le paramètre //q-mode// est toujours utilisé mais il ne doit pas avoir la valeur //operation//. Il indique d'une part la relation entre les différents sous-champs et, d'autre, part, la relation par défaut à l'intérieur d'un champ. La relation à l'intérieur d'un champ peut être précisée avec le paramètre //q-mode_// suivi du nom. | ||
+ | |||
+ | Considérons l'exemple suivant : | ||
+ | |||
+ | <code javascript> | ||
+ | q_mode=intersection | ||
+ | q_entete=économie* politique* | ||
+ | q-scope_entete=titre,soustitre | ||
+ | q_auteurs=Dupont Martin | ||
+ | q-scope_auteurs=sct:authors | ||
+ | q-mode_auteurs=union | ||
+ | </code> | ||
+ | |||
+ | Cet exemple se lit de la manière suivante : recherche des fiches avec « économie* » ET « politique* » (//q_entete=économie* politique*//, //q_mode=intersection//) dans le titre ou le sous-titre (//q-scope_entete=titre,soustitre//) ET (//q-mode=intersection//) avec « Dupont » OU « Martin » (//q_auteursDupont Martin//, //q-mode_auteurs=union//) comme auteurs (//q-scope_auteurs=sct:authors//) | ||
+ | |||
+ | Cette recherche est équivalente à la recherche suivante exprimée dans la syntaxe avancée : | ||
+ | <code javascript> | ||
+ | (titre,soustitre:économie* && titre,soustitre:politique*) && (sct:authors:Dupont || sct:authors:Martin) | ||
+ | </code> |