Renseigner des groupes de moteurs

Une instance de Scrutari peut avoir un nombre illimité de moteurs et chaque moteur est indépendant des uns des autres. Dans certaines configurations, il peut être intéressant de donner accès à une sélection de ces moteurs, par exemple, en proposant une recherche parallèle sur plusieurs moteurs à la fois ou en proposant de compléter une première recherche par une recherche dans un autre moteur plus généraliste (Par exemple, le client du site de l'ARGA propose de faire la recherche sur l'ensemble de la Coredem).

Pour faire une telle sélection, il suffit de définir un groupe. Les groupes sont définis par des fichiers au format XML, un fichier par groupe. Ce fichier doit avoir l'extension .xml et son nom est le nom du groupe. Le nom d'un groupe doit être composé de caractères en minuscules non accentués, de chiffre ou du trait de soulignement (comme le nom du moteur). Ce fichier doit être placé dans un répertoire appelé _groups lui-même placé dans le répertoire de configuration (celui dans lequel sont indiqués tous les moteurs). On notera le trait de soulignement au début de _groups, c'est ce qui permet de distinguer ce répertoire de ceux des moteurs.

En cas d'utilisation des groupes, il est fortement conseiller de définir le paramètre canonical-url dans le fichier de configuration globale.

Après création, suppression ou modification d'un groupe, il est nécessaire de recharger la configuration de l'instance de Scrutari avec l'instruction _reload (comme lors de la création d'un nouveau moteur).

La présence d'un groupe peut être validée via l'adresse {adresse de l'instance}/_groups/{nom du groupe}/ qui renvoie un simple message si le groupe existe et une erreur 404 sinon.

La requête JSON type = enginegroup permet de récupérer les informations sur un groupe.

Structure du format XML

L'élément racine est l'élément <group> qui peut contenir les éléments suivants :

  • Un ou plusieurs éléments <label> indiquant le titre du groupe dans une langue donnée, un élément <label> possède un attribut @xml:lang indiquant la langue en question
  • Un ou plusieurs éléments <engine> qui possède un unique attribut @name qui contient le nom d'un moteur à inclure dans le groupe, l'ordre des éléments <engine> indique l'ordre des moteurs dans le groupe

Un élément <group> peut aussi contenir des éléments <phrase> et <attr> en vue de personnalisation comme indiquée à la page Phrases et attributs.

Exemple du groupe de Ritimo

Fichier _groups/ritimo.xml

<?xml version="1.0" encoding="UTF-8"?>
<group>
  <label xml:lang="fr">Boussole Ritimo</label>
  <engine name="ritimo"/>
  <engine name="ritimo_catalogue"/>
  <engine name="coredem"/>
</group>

DTD

<!ELEMENT group (label*|engine*|phrase*|attr*)>
 
<!ELEMENT phrase (label*)>
   <!ATTLIST phrase name NMTOKEN #REQUIRED>
 
<!ELEMENT label (#PCDATA)>
   <!ATTLIST label xml:lang NMTOKEN #REQUIRED>
 
<!ELEMENT engine>
   <!ATTLIST engine name NMTOKEN #REQUIRED>
 
<!ELEMENT attr (val+)>
   <!ATTLIST attr ns NMTOKEN #REQUIRED>
   <!ATTLIST attr key NMTOKEN #REQUIRED>
serveurscrutari/config/group.txt · Dernière modification: 2019/01/11 22:28 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0