Aide sur la recherche par équation

La recherche par équation est le mode de recherche le plus puissant pour interroger le fonds documentaire de l’EHESP. Ce document décrit la syntaxe des équations de recherche reconnues et les traitements effectués par le moteur de recherche.

Termes de recherches

La question la plus simple que l’on peut poser est constituée d’un mot ou d’une expression.

Les mots peuvent être tapés tels quels, les expressions doivent être « encadrées » par des guillemets.

Le moteur considère que le terme recherché est un mot s’il ne contient que des lettres et des chiffres. Si le terme recherché contient d’autres caractères (des espaces, des apostrophes, des slashs, etc.) l’expression toute entière doit être entre guillemets.

La casse des mots est sans importance : vous pouvez taper indifféremment le terme de recherche en majuscules, en minuscules, avec ou sans accents.

Exemples :
– éducation
– « éducation pour la santé »
– 1996
– « 1996/12 »
– Martin
– « Martin D »

Lorsque l’équation de recherche ne contient qu’un seul terme (que ce soit un mot ou une expression), le moteur comprend la question de la manière suivante : « Trouver les notices qui contiennent le terme indiqué dans n’importe quel champ ».

Recherche par troncature

Le terme de recherche (mot ou expression) peut contenir une étoile (*) pour indiquer une troncature.

Dans la version actuelle du moteur de recherche, la troncature n’est autorisée que si elle figure en dernière position dans le terme de recherche (i.e. on ne peut pas faire de troncature à gauche ou au milieu).
Exemples :
– éducation*
– enfan*
– 1996*
– « Actualités et dossiers* »
– « Martin D* »

Lorsque l’équation de recherche ne contient qu’un seul terme avec une troncature à droite, le moteur comprend la question de la manière suivante : « Trouver les notices qui contiennent un mot ou une expression commençant par le terme indiqué dans n’importe quel champ ».

Dans l’exemple ci dessus, enfan* provoquera une recherche sur « enfant ou enfants ou enfance ou enfantement ou …etc. »

Recherche sur un champ particulier

Comme nous l’avons vu, le moteur recherche par défaut sur tous les champs des notices.

Il est possible d’indiquer explicitement le champ sur lequel on souhaite faire la recherche en faisant précéder le terme recherché par le nom du champ et un signe égal (=).
Exemples :
motscles=sida
titperio= »revue de l’infirmière »
date= »1996* »
auteur= »Martin D* »

Remarque : comme pour les termes de recherche, la casse des noms est sans importance : vous pouvez saisir les noms de champs indifféremment en majuscules ou en minuscules.

En fait, ce n’est pas réellement un nom de champ que l’on indique mais le nom d’un index. Les noms des index correspondent en général aux noms des champs qu’il gèrent, mais il existe également des index qui gèrent plusieurs champs. C’est très pratique pour interroger simultanément sur plusieurs champs. A titre d’exemple, l’index « Mot » gère tous les champs « textes » des notices (champs titres, résumés, etc).

Vous pouvez consulter la liste des index disponibles.

Lorsque l’équation de recherche contient un nom d’index suivi d’un terme de recherche, le moteur comprend la question de la manière suivante : « Trouver les notices qui contiennent le terme indiqué dans n’importe lequel des champs gérés par l’index mentionné ».

Combinaison de termes

Dans une équation de recherche, chaque terme conduit à construire un lot de réponses.

Ces lots peuvent être combinés ensembles en utilisant les opérateurs ensemblistes d’intersection, d’union et de différence pour construire un nouveau lot qui peut à son tour être utilisé dans une opération ensembliste.

L’intersection consiste à ne garder que les notices qui appartiennent aux deux lots : en exécutant une requête de la forme X ET Y », on obtiendra un lot contenant les notices qui appartiennent à la fois à X et à Y.

L’union consiste à fusionner deux lots. Une requête de la forme X OU Y construira un lot qui contient toutes les notices de X et toutes celles de Y.

La différence (ou exclusion) consiste à éliminer d’un lot les notices qui appartiennent à un autre. Avec une équation de la forme X SAUF Y on obtiendra un lot contenant toutes les notices de X sauf celles qui figurent dans Y.

Remarque : contrairement à l’intersection et à l’union, la différence n’est pas commutative : X SAUF Y n’est en général pas égal à Y SAUF X.

Les opérateurs reconnus par le moteur de recherche sont les suivants :

  • ET (ou AND ou &) pour l’intersection,
  • OU (ou OR ou +) pour l’union,
  • SAUF (ou BUT ou -) pour la différence.

Vous remarquerez que chaque opérateur existe sous trois forme (version française, version anglaise et version symbole). Toutes les formes sont équivalentes et peuvent être utilisées indifféremment : x ET y = x AND y = x & y.

Lorsque l’équation de recherche contient deux termes reliés par un opérateur ensembliste, le moteur comprend la question de la manière suivante :
« Construire un lot avec les notices qui contiennent le premier terme indiqué
puis
construire un lot avec les notices qui contiennent le second terme indiqué
puis
exécuter l’opération ensembliste demandée pour construire le lot résultat ».

Priorité des opérateurs

Le moteur de recherche tient compte de la priorité des opérateurs ensemblistes : le ET est prioritaire sur le OU et le SAUF est prioritaire sur tout.

SAUF >> ET >> OU

La priorité des opérateurs permet au moteur de recherche de comprendre de manière univoque une question qui comporte plusieurs opérateurs (vous n’aurez jamais un message « question ambiguë »).

Prenons par exemple la question suivante :

X ET Y OU Z

Sur un moteur de recherche ne prenant pas en compte la priorité des opérateurs, cette question est ambiguë :

(X ET Y) OU Z

X ET (Y OU Z)

Dans notre cas, comme le ET est prioritaire sur le OU, la question sera toujours interprétée sous la forme (X ET Y) OU Z .

De la même manière, la question X ou Y et Z sauf T sera toujours interprétée comme

X OU (Y ET (Z SAUF T))

Il est important de prendre cela en compte car la sémantique des mots peut parfois laisser croire à l’humain que la question sera interprétée de manière différente.

Utilisation des parenthèses

Il est possible de changer la priorité naturelle des opérateurs en utilisant des parenthèses ().

On peut par exemple « rendre le OU prioritaire sur le ET » en entourant la conjonction de parenthèses.

Exemple : « (a ou b) et c » sera correctement interprété.

L’utilisation de parenthèses superflues « ne ralentit pas » la recherche. Il est donc conseillé de parenthèser explicitement les questions univoques du point de vue booléen mais ambiguë sémantiquement.

Vous pouvez imbriquer autant de niveaux de parenthèses que nécessaire. Veillez cependant à ce que les parenthèses ouvrantes et fermantes soient équilibrées (vous devez avoir autant de parenthèses ouvrantes que de parenthèses fermantes).

Portée des noms de champs

Lorsque vous précisez un nom de champ devant un terme de recherche, celui-ci n’est pris en compte que pour le terme qui suit immédiatement le nom de champ.

Dans l’équation « motscles=sida OU vih », le champ motscles n’est pris en compte que pour le mot sida, le terme vih étant recherché sur tous les champs.

Ce choix délibéré permet de n’avoir à entrer les noms de champs que lorsque c’est nécessaire : l’équation
« article et sida et FRE et 1996 »
donnera quasiment les mêmes résultats que l’équation beaucoup plus complexe :
« typdoc=article et motscles=sida et langue=fre et dateedit=1996″

Si vous tenez absolument à préciser les noms des champs, vous devez les indiquer pour chacun des termes (motscles=sida OU motscles=vih » dans l’exemple ci-dessus).