Le logo d'industrie Canada
Carte du sitePasser les menusPasser le menu
English Contactez-Nous Aide Recherche Site du Canada
Accueil À propos du PAC Télécharger IJ du PAC Carte du site

Accueil > Recherche

Aide sur la recherche

Le moteur de recherche de la DGAAI utilise Lucene de la Apache Software Foundation. La syntaxe de recherche de Lucene est la suivante (ces renseignements sont adaptés de la documentation fournie avec Lucene):

Champs

Lucene supporte les champs de données. Lorsqu'on effectue une recherche, on peut spécifier un champ ou utiliser le champ par défaut. Les noms des champs sont les suivants :

Champ
Signification:
text (champ par défaut)
Texte du document, excluant tout balisage HTML.
title
Titre du document
dc.title
Titre spécifié dans les métadonnées du document
language Langue du document désigné par le code ISO à 2 lettres (« en » ou « fr »)
dc.subject
Sujet du document spécifié dans les métadonnées du document
dc.creator
Créateur du document spécifié dans les métadonnées du document

On peut effectuer une recherche portant sur n'importe quel champ en tapant le nom du champ suivi du deux-point (:) et du terme que l'on recherche.

Par exemple, supposons qu'un index Lucene contient deux champs, « title » et « text », et que « text » est le champ par défaut. Si vous souhaitez trouver un document intitulé « La bonne manière », qui contient le texte « évitez cela », vous pouvez entrer :

title:"La bonne manière" AND text:évitez

ou

title:"manière" AND évitez

Comme « text » est le champ par défaut, l'indicateur de champ n'est pas requis.

Nota : Le champ ne désigne que le terme qu'il précède immédiatement. C'est pour cela que la recherche

title:manière d'aller au centre

trouvera seulement les champs de titre contenant « manière ». Elle trouvera « aller » et « centre » dans le champ par défaut (dans ce cas, le champ de texte).


Modificateurs de terme

Lucene supporte la modification des termes de recherche afin de fournir un grand nombre d'options de recherche.

Recherche par caractères génériques

Lucene supporte les recherches par caractère générique portant sur un ou plusieurs caractères.

Pour effectuer une recherche par caractère générique portant sur un seul caractère, utiliser le symbole « ? ».

Pour effectuer une recherche par caractère générique portant sur plusieurs caractères, utiliser le symbole « * ».

La recherche de caractère générique portant sur un seul caractère cherche les termes comportant le seul caractère remplacé. Par exemple, pour chercher « text » ou « test », vous pouvez faire une recherche ayant la forme suivante :

te?t

Les recherches par caractère générique portant sur plusieurs caractères cherchent 0 ou plusieurs caractères. Par exemple, pour chercher « test », « tests » ou « tester », vous pouvez faire une recherche ayant la forme suivante :

test*

On peut aussi utiliser la recherches de caractère générique au milieu d'un terme.

te*t

Nota : On ne peut pas utiliser le symbole * ou ? comme premier caractère d'une recherche.


Recherches floues

Lucene supporte les recherches floues basées sur l'algorithme de calcul de la distance de Levenshtein ou de la distance d'édition. Pour effectuer une recherche floue, utiliser le symbole tilde, « ~ », à la fin d'un terme comportant un seul mot. Par exemple, pour chercher dont la forme est semblable à « itinérance », utiliser la recherche floue :

itinérance~

Cette recherche trouvera les termes comme itinérant et itinéraire.

Nota : Le degré de pertinence augmentera automatiquement de 0,2 si on effectue une recherche floue.


Recherches de proximité

Lucene supporte la recherche de mots qui se trouvent éloignés les uns des autres d'une distance spécifique. Pour effectuer une telle recherche, utiliser le symbole tilde, « ~ », à la fin d'une expression. Par exemple, pour chercher une occurrence des mots « apache » et « jakarta » se trouvant à 10 mots ou moins l'un de l'autre dans un document, utiliser la syntaxe suivante :

"jakarta apache"~10

Recherches de plages de valeurs

Les recherches de plages de valeurs permettent de trouver des documents dont la valeur d'un ou de plusieurs champs se trouvent entre les limites inférieure et supérieure spécifiées dans la recherche. Ces recherches sont inclusives (c.-à-d. que la recherche inclue les limites inférieure et supérieure spécifiées). Le tri est effectué en ordre lexicographique.

mod_date:[20020101 TO 20030101]

Cette recherche trouve les documents dont les champs mod_date ont des valeurs entre 20020101 et 20030101. Il est à noter que les recherches par plages ne sont pas réservées aux champs de date. On peut aussi utiliser des recherches par plages avec des champs autres que des champs de date :

title:[Aida TO Carmen]

Cette recherche trouvera tous les documents dont les titre sont entre Aida et Carmen.


Augmenter le taux de pertinence

Lucene exprime le taux de pertinence des documents en se fondant sur les termes trouvés. Pour augmenter la valeur d'un terme, on utilise le symbole caret, « ^ », suivi du facteur d'augmentation de pertinence (un nombre) à la fin du terme que l'on recherche. La pertinence du terme est proportionnelle au facteur d'augmentation de pertinence.

En établissant des facteurs de pertinence, on peut contrôler la pertinence d'un document en augmentant le degré de pertinence des termes qu'il contient. Par exemple, si on cherche :

jakarta apache

et que l'on souhaite que le terme « jakarta » soit plus pertinent, on augmente son degré de pertinence en lui ajoutant le symbole ^ ainsi que le facteur d'augmentation de pertinence. On taperait donc :

jakarta^4 apache

Cela aura pour résultat que les documents contenant le terme jakarta seront indiqués comme plus pertinents. On peut aussi augmenter la pertinence d'expressions comme dans l'exemple suivant :

"jakarta apache"^4 "jakarta lucene"

Par défaut, la valeur du facteur d'augmentation de pertinence est 1. Bien que ce facteur doive être positif, il peut être inférieur à 1 (p. ex. 0.2)



Opérateurs booléens

Les opérateurs booléens permettent de combiner des termes au moyen d'opérateurs logiques. Lucene supporte AND, « + », OR, NOT et « - » comme opérateurs booléens (nota : les opérateurs booléens doivent être entièrement en MAJUSCULES).

OR

L'opérateur OR (ou) est l'opérateur de conjonction par défaut. Cela signifie que s'il n'y a pas d'opérateur booléen entre deux termes, l'opérateur OR est utilisé par défaut. Cet opérateur relie deux termes et cherche tout document comportant l'un ou l'autre terme. Il s'agit de l'union dans les ensembles. Le symbole || peut être utilisé au lieu du mot OR.

Pour chercher des documents qui contiennent « jakarta apache » ou seulement « jakarta », on utilise la forme suivante :

"jakarta apache" jakarta

ou

"jakarta apache" OR jakarta

AND

L'opérateur AND permet de trouver des documents qui comportent les deux termes réunis par AND, mais qui peuvent se trouver n'importe où dans le texte d'un document. Il s'agit de l'équivalent de l'intersection avec les ensembles. Le symbole && peut être utilisé au lieu du mot AND.

Pour chercher les documents qui contiennent « jakarta apache » et « jakarta lucene », on utilise la forme suivante :

"jakarta apache" AND "jakarta lucene"

+

Le symbole « + », ou opérateur requis, exige que le terme suivant le symbole « + » existe dans un champ d'un document.

Pour chercher des documents qui doivent contenir « jakarta » et peuvent contenir « lucene », on utilise la forme suivante :

+jakarta apache

NOT

L'opérateur NOT exclue les documents qui contiennent le terme qui suit NOT. C'est l'équivalent de la différence dans les ensembles. Le symbole ! peut être utilisé au lieu du mot NOT.

Pour chercher les documents qui contiennent « jakarta apache », mais non « jakarta lucene », on utilise la forme suivante :

"jakarta apache" NOT "jakarta lucene"

Nota : L'opérateur NOT ne peut pas être utilisé seulement avec un terme. Par exemple, la recherche suivante ne peut donner aucun résultat

NOT "jakarta apache"

-

L'opérateur « - », ou d'exclusion, exclue les documents qui contiennent le terme suivant le symbole « - ».

Pour chercher les documents qui contiennent « jakarta apache », mais non « jakarta lucene », on utilise la forme suivante :

"jakarta apache" -"jakarta lucene"


Groupement

Lucene supporte l'utilisation des parenthèses pour grouper des clauses afin de former des sous-requêtes. Cette fonction peut être très utile si on souhaite contrôler la logique booléenne d'une requête.

Pour chercher « jakarta » ou « apache » et « website », on utilise la forme suivante :

(jakarta OR apache) AND website

Cela élimine toute confusion et vous assure que le mot « website » existe dans le document et que le terme jakarta ou apache peut exister.


Groupement de champs

Lucene supporte l'utilisation des parenthèses afin de grouper des clauses multiples en un seul champ.

Pour chercher un titre qui contient le mot « retour » et l'expression « panthère rose », on utilise la forme suivante :

title:(+retour +"panthère rose")

Caractères spéciaux ignorés

Lucene permet d'ignorer des caractères spéciaux qui font partie de la syntaxe de recherche. Ces caractères spéciaux sont actuellement :

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

Pour ignorer un caractère, utiliser le symbole « \ » avant ce caractère. Par exemple, pour chercher (1+1) :2, utiliser la forme suivante :

\(1\+1\)\:2

Dernière mise à jour
2005-04-08

Haut de la page
Haut de la page

Avis importants