====== type = q-fiche ====== Cette requête JSON est la requête principale de Scrutari car c'est elle qui permet de faire une recherche sur les fiches. Elles retournent toutes les fiches ainsi que tous les mots-clés qui ont servi à la recherche. ===== Paramètres ===== ==== Paramètres communs obligatoires ==== * //q// : séquence de recherche (est ignoré si qid est indiqué) (voir [[serveurscrutari:json:qsyntax|Syntaxe d'une recherche]]) * //version// : version à utiliser (Version actuelle : 3) ==== Paramètres communs optionnels ==== * //q-mode// : mode d'analyse de la chaine de recherche définie par le paramètre //q// (voir [[serveurscrutari:json:qsyntax|Syntaxe d'une recherche]]) * //lang// : langue à utiliser de préférence pour les intitulés * //corpuslist// : limitation de la recherche aux corpus indiqués * //baselist// : limitation de la recherche aux corpus des bases indiquées * //categorylist// : limitation de la recherche aux corpus appartenant aux catégories indiquées * //thesauruslist// : pour les mots-clés, limiter la recherche aux thésaurus indiqués * //langlist// : limitation de la recherche aux fiches dans des langues déterminées * //start// : point de départ des fiches retournées ; lorqu'il y a des catégories, le comportement exact est déterminé par le paramètre //starttype// * //limit// : limite du nombre de fiches retournées * //startype// : complement du paramètre //start// indiquant le comportement de la sélection (n'est utile que s'il y a des catégories), les valeurs possibles sont les suivantes : * //global// (valeur par défaut) : le point de départ est évaluée par rapport à l'ordre global des fiches (si il y a 15 fiches dans la première catégorie et 40 dans une catégorie, le point de départ 20 correspond à la cinquième fiche du second groupe) * //in_all// : le point de départ est évalué pour chaque catégorie prise séparément : le paramétrage start=1 et limit=50 renverra les cinquante premières fiches de chaque catégorie * //in: …// : comme précédemment sauf que le point de départ n'est évalué que pour les catégories listées après //in:// * //fichefields// : champs qui se retrouveront dans les objets du tableau //ficheArray// (voir [[serveurscrutari:json:fiche_fields|Champs des fiches]]) * //motclefields// : champs qui se retrouveront dans les objets du tableau //motcleArray// (voir [[serveurscrutari:json:motcle_fields|Champs des mots-clés]]) * //fieldvariant// : variante de champs à utiliser pour les fiches comme les mots-clés (voir le fichier [[serveurscrutari:config:fields|fields.xml]] et [[serveurscrutari:json:fiche_fields|Champs des fiches]]) (ignoré si //fichefields// ou //motclefields// sont définis) //corpuslist//, //baselist//, //categorylist// et //thesauruslist// peuvent être utiliser en mode d'exclusion, c'est à dire pour indiquer des corpus, des bases, des catégories ou des thésaurus qui doivent être exclus de la recherche. Pour cela, il faut commencer le paramètre par un point d'exclamation **!**. Dans tous les cas //corpuslist// et //baselist// s'additionnent (la liste des corpus sélectionnés est celle de //corpuslist// ainsi que tous les corpus des bases indiquées par //baselist//). Si //baselist// indique une exclusion et //corpuslist// une inclusion (ou inversement), c'est le critère d'exclusion qui a préséance sur le critère d'inclusion (i.e. un corpus listé dans //corpuslist// mais appartenant à une base exclue par //baselist// sera exclu). ==== Paramètres spécifiques obligatoires ==== * //qid// : au lieu du paramètre //q//, il est possible d'indiquer l'identifiant du recherche déjà effectuée (afin, par exemple de récupérer l'information sur une plage de fiches). //q// et //qid// sont mutuellement excluants (//qid// ayant la préséance sur //q//), autrement dit c'est la présence de l'un des deux qui est obligatoire. ==== Paramètres spécifiques optionnels ==== * //insert//: gère les objets supplémentaires dans l'objet Json retourné, les valeurs possibles (séparées par des virgules) sont les suivantes : * //-motclearray// : le tableau des mots-clés est inséré par défaut, ce paramètre permet de l'éviter * //-searchmeta// : les informations sur la recherche sont insérées par défaut, ce paramètre permet de l'éviter * //engineinfo// : insère les informations sur le moteur (équivalent de [[serveurscrutari:json:type_engine|type = engine&data=all]] moins les statistiques) * //origin// : origine de la recherche (chaine libre qui permet d'avoir une idée dans les journaux de l'origine de la recherche) * //flt// (//flt-indexation//, //flt-date//, //flt-qid//) : filtres appliqués constituant une présélection de fiches avant la recherche (voir [[serveurscrutari:json:filtersyntax|Syntaxe des filtres]]) * //ponderation// : poids des différents facteurs dans le calcul de la pertinence (voir [[serveurscrutari:json:ponderation|Pondération de la pertinence]] * //wildchar// : indique si une troncature doit être appliquée automatiquement (application d'un astérisque automatique au début ou à la fin du terme), les valeurs possibles sont //both//, //end// (valeur par défaut), //start// et //none// ==== Paramètres spéciaux ==== * //log// : avec la valeur //always// (ou //all//), la recherche est toujours inscrite dans les journaux mais si une recherche identique a déjà été effectuée * //store// : si la valeur est //no//, la recherche n'est pas stockée, aucun identifiant de recherche n'est créé ===== Objet retourné ===== Version 3 : { ficheSearchResult: { searchMeta : { //objet contenant les informations sur la recherche q: … , //séquence de recherche (chaine) qId: … , //identifiant de la recherche (chaine) lang: … , //langue utilisée pour l'interface (valeur du paramètre lang s'il était présent) (chaine) ficheCount: … , //nombre de fiches trouvées ficheMaximum: … , //nombre de fiches sur lesquelles a porté la recherche motcleCount: … , //nombre de mots-clés contenant au moins un des composants de la séquence de recherche options: { // objet des options baselist: { // si la recherche se fait sur une sélection de base exclude: …, //booléen sir la liste est exclusive ou inclusive array: [ … code des bases ] }, langlist:, // même modèle que langlist corpuslist:, // même modèle que corpuslist thesauruslist: // même modèle que thesauruslist } }, ficheGroupType: … , // type de groupement des fiches, prend la valeur "category" (regroupement par catégorie) ou "none" (pas de regroupement) ficheGroupArray: [ //tableau des groupes de fiches répondant aux critères de recherche, vide s'il n'y aucune fiche { // chaque groupe de fiches est un objet category: { // objet décrivant la catégorie du groupement, présent uniquement si ficheGroupType="category", autrement dit, si des catégories sont définies pour le moteur en question { rank: … , // rang de la catégorie(entier > 0) name: … , // nom de la catégorie (chaine) title: … // intitulé de la catégorie dans la langue d'interface (chaine) }, ficheCount: … ,//Nombre total de fiches dans le groupe ficheArray: [ //tableau des fiches (sa longueur peut être largement inférieure à ficheCount si le paramètre start est défini) { // chaque fiche est un objet __fichefields__ // série de propriétés définies par les paramètres fichefields ou fieldvariant codemotcleArray: [...] // tableau des codes des mots-clés participant à la recherche et indexant la fiche (tableau d'entiers > 0), peut être étendu à tous les mots-clés indexant la fiche (voir les champs d'une fiche) } ] } ], motcleArray: [ // tableau des mots-clés, vide s'il n'y a aucun mot-clé { __motclefields__ // série propriétés définies par les paramètres motclefields ou fieldvariant } ], engineInfo: {//objet identique à l'objet produit par type=engine (présent si le paramètre insert contient la valeur engineinfo) … } } } Version 1 et 2 : { ficheSearchResult: { q: … , //séquence de recherche (chaine) qId: … , //identifiant de la recherche (chaine) lang: … , //langue utilisée pour l'interface (valeur du paramètre lang s'il était présent) (chaine) ficheCount: … , //nombre de fiches trouvées ficheMaximum: … , //nombre de fiches sur lesquelles a porté la recherche motcleCount: … , //nombre de mots-clés contenant au moins un des composants de la séquence de recherche ficheGroupType: … , // type de groupement des fiches, prend la valeur "category" (regroupement par catégorie) ou "none" (pas de regroupement) ficheGroupArray: [ //tableau des groupes de fiches répondant aux critères de recherche, vide s'il n'y aucune fiche { // chaque groupe de fiches est un objet category: { // objet décrivant la catégorie du groupement, présent uniquement si ficheGroupType="category", autrement dit, si des catégoires sont définies pour le moteur en question { rank: … , // rang de la catégorie(entier > 0) name: … , // nom de la catégorie (chaine) title: … // intitulé de la catégorie dans la langue d'interface (chaine) }, ficheCount: … ,//Nombre total de fiches dans le groupe ficheArray: [ //tableau des fiches (sa longueur peut être largement inférieure à ficheCount si le paramètre start est défini) { // chaque fiche est un objet __fichefields__ // série propriétés définies par les paramètres fichefields ou fieldvariant codemotcleArray: [...] // tableau des codes des mots-clés participant à la recherche et indexant la fiche (tableau d'entiers > 0) } ] } ], motcleArray: [ // tableau des mots-clés, vide s'il n'y a aucun mot-clé { __motclefields__ // série propriétés définies par les paramètres motclefields ou fieldvariant } ], corpusIntituleArray: [ // tableau des intitulés de corpus, si le paramètre intitule est défini { codecorpus: … , // code du corpus (entier > 0) corpus: … , // intitulé du corpus (chaine) fiche: … , // intitulé d'une fiche (chaine) complement_XXX: … // intitulé du complément de numéro XXX } ], attributes: {//objet identique à l'objet attributes de type=engine (présent si le paramètre intitules a la valeur attributes) … } } } Version 0 : { ficheGroupType:"corpusclasse" (remplacé de "category") corpusClasse: { // à la place category { rank: … , // rang de la classe (entier > 0) name: … , // nom de la classe (chaine) intitule: … // intitulé de la classe dans la langue d'interface (chaine) },