Recherche

  • recherche
  • recherche experte
Last updated: 29-08-2022

Le fonctionnement de la recherche, décrit sur cette page, vaut pour toutes les ressources (lectrices et lecteurs, document, bibliothèques, etc.).

Opérateurs booléens et astuces de recherche

Par défaut, le système de recherche interprète les espaces comme des opérateurs AND. Il est possible d'utiliser des modificateurs de recherche et d'autres opérateurs booléens selon la syntaxe simple query d'ElasticSearch.

Symbole Description Exemple Effet
* Troncature culture* Recherche les ressources commençant par "culture", comme "culture", "culturel", "culturelle", etc.
+ Opérateur booléen ET chien + chat Recherche les ressources contenant "chien" et aussi "chat". Si rien est spécifié, l'opérateur ET s'appliquera de toute façon.
| Opérateur booléen OU vélo | bicyclette Recherche les ressources contenant soit "vélo", soit "bicyclette"
- Opérateur booléen SAUF tintin -tibet Recherche les ressources contenant "tintin" mais pas "tibet"
() Parenthèses, pour combiner les opérateurs mobilité + (vélo | bicyclette) Recherche les ressources contenant "mobilité" et soit "vélo", soit "bicyclette"
"" Expression exacte "revue littéraire" Recherche les ressources contenant l'expression exacte "revue littéraire", tout en appliquant le niveau d'analyse du champ en question (éventuelles racinisation et tokenisation, voir ci-dessous).

Facettes, filtres

Les facettes permettent de filtrer les résultats d'une recherche. Des facettes différentes existent selon les types de ressources. La sélection d'une facette modifie l'URL de recherche en lui ajoutant un paramètre.

Voir aussi: API de recherche > Paramètres de l'URL

Exemple: &document_type=docmaintype_book&document_subtype=docsubtype_other_book (vue professionnelle / vue publique / API)

  • Il s'agit d'une facette sur le type et sous-type de document livre, texte > autre livre
  • ? pour insérer des paramètres.
  • q= pour une requête vide.
  • & pour ajouter un paramètre.
  • document_type=docmaintype_book pour la facette de premier niveau (livre, texte).
  • & pour ajouter un deuxième paramètre.
  • document_subtype=docsubtype_other_book pour la facette de deuxième niveau (autre livre).

Nouvelles acquisitions

Il est possible de construire des URL pour afficher la liste des nouvelles acquisitions, dans la vue publique ou professionnelle. Il suffit d'ajouter le filtre suivant à l'URL de requête : new_acquisition=[date de début]:[date de fin]. Ce filtre peut être combiné avec des recherches expertes.

Voir: Exemples de recherches

Niveaux d'analyse des champs

Afin de comprendre le fonctionnement de la recherche, il est important de savoir comment les champs de la base de données sont traités par le moteur de recherche. En effet, RERO ILS tire parti des fonctions d'analyse du moteur ElasticSearch afin, par exemple, de pardonner des erreurs de frappe ou de substituer un mot d'un titre au pluriel ou au singulier. Les champs sont indexés selon quatre niveaux d'analyse :

  1. Champ brut, non-analysé. La recherche ne renvoie que les termes exacts correspondants.
    Exemple: les code-barres.
  2. Insensibilité aux diacritiques et à la casse.
    Exemples: les codes ou types de ressource.
  3. Tokenization (analyse lexicale, insensibilité aux signes de ponctuation…) et insensibilité aux diacritiques et à la casse. Niveau utilisé pour la majorité des champs.
    Exemples: les noms des auteurs, les éditeurs, etc.
  4. Analyses précédentes et stemming (racinisation). Analyse des racines des mots pour le français, l'anglais, l'allemand et l'italien.
    Ce traitement est utilisé pour les champs avec du langage naturel et des noms communs dans l'interface publique (notamment titre et résumé). Comme il est effectué pour quatre langues, il peut générer du bruit dans les résultats puisqu'un mot d'une langue précise est racinisé indifféremment selon les règles des quatre langues. Ceci explique également de légères différences de résultats en cas de recherches avec ou sans diacritiques ("résumé" vs. "resume"): dans un tel cas, il se peut que des règles de racinisation n'existent que pour une seule langue, ce qui affine donc la recherche.

Recherche experte

Principes de base

Pour le professionnel, une recherche experte est disponible au moyen d'une option à activer au-dessous du champs de recherche dans la page qui liste les éléments d'une ressource existante (utilisateurs, documents, catégories de circulation…).

Recherche habituelle

La capture ci-dessus montre la recherche simple. On la reconnaît par le paramètre simple=1 dans l'URL.

Recherche experte

Une fois l'option activée (simple=0), la fonctionnement du champ de saisie de la recherche permet de saisir des requêtes plus complexes et plus précises. Toutefois, ce mode de recherche a les conséquences suivantes :

  • Il n'autorise pas d'erreur de syntaxe dans la requête.
  • La pertinence des résultats n'est plus la même, notamment parce que c'est l'opérateur OU qui est choisi lorsqu'aucun opérateur n'est précisé entre les termes.

C'est pourquoi ce mode n'est pas le mode par défaut et qu'elle ne peut pas être activée depuis l'interface publique. Il est possible de faire une recherche experte dans l'interface publique, mais il faut modifier manuellement le paramètre en ajoutant &simple=0 dans l'URL de la recherche.

Syntaxe

La syntaxe des recherche experte est décrite en détail sur la page de l'API REST.

La syntaxe de la recherche experte est la même que celle de l'API, sauf qu'il ne faut pas utiliser %5c pour encoder le backslash.

  • Exemple dans l'API: /api/documents/?q=title._text.%5c*:"harry potter et la coupe de feu"
  • Exemple dans l'interface professionnelle: title._text.\*:"harry potter et la coupe de feu"

Ces syntaxes se basent sur la query string d'ElasticSearch, qui contient sa propre documentation technique.

Exemples de recherches expertes

Voir: Exemples de recherches

Recherche via les API

Il est possible de faire des recherches en mode avancé au moyen des API. Certaines sont publiques et accessibles à tout le monde (par exemples l'index des documents et exemplaires), alors que d'autres nécessitent des permissions de bibliothécaire, voire de bibliothécaire système.

Voir: API de recherche


  1. À noter que ElasticSearch préconise de ne pas utiliser ce mode dans un champ de recherche.