Il s’agit bien entendu d’une brique essentielle des applications de gestion d’informations.
La fonction de recherche est évidemment centrale dans les projets de GED. Il s’agit souvent de la fonctionnalité la plus utilisée et la plus importante pour les utilisateurs, sous réserve qu’elle soit adaptée pour répondre à leurs attentes spécifiques.
Parmi les besoins fréquemment évoqués, on retrouve par exemple : la navigation par arborescence, la recherche sur intervalle de dates, la recherche simple (pour les aficionados de Google), la recherche par référence, la recherche fédérée couvrant à la fois la GED et applications tierces.
Il est donc fondamental d’analyser les attentes des utilisateurs pour définir leurs besoins de recherche. C’est un bon point de départ pour bâtir l’architecture (structure des données et ergonomie) de l’application cible.
On connait 3 grandes familles ou tendances pour les moteurs de recherche d'une GED:
- l’intégration d’un moteur de recherche, les solutions open source intègrent souvent Lucene (SOLR ou Elastic SEARCH), moteur de référence du monde open source.
- l’exploitation de la recherche sur de la base de données, ceci peut limiter les fonctions disponibles (notamment lemmatisation, troncatures…)
- l’ouverture vers des solutions de recherche du marché (propriétaire) via des connecteurs.
Il est donc nécessaire de savoir comment on souhaite rechercher, notamment en termes de fonctions et de périmètre de recherche.
Fonctions de base
A minima, le moteur de recherche d’une GED doit :
- indexer les fiches documentaires, c'est-à-dire toutes les métadonnées d'un document
- indexer les documents électroniques en texte intégral (ou « full text »), c'est-à-dire en prenant en compte le contenu des fichiers électroniques, pour tous ceux qui incluent du contenu textuel
- filtrer ses résultats de recherche selon les habilitations en lecture de l’utilisateur, c’est-à-dire ne lui proposer que des documents qu’il a le droit de consulter
- permettre des recherches aussi bien sur l’intégralité d’un document que sur un ou plusieurs champs spécifiques de métadonnées.
- permettre l’utilisation des tables de référence dans les interfaces de recherche
- permettre les recherches utilisant plusieurs critères associés avec des opérateurs booléens (ET, OU, SAUF), ainsi que des parenthèses
- permettre de mixer les approches documentaires, sur les métadonnées et le texte intégral
- autoriser les troncatures centrales et à droite, implicitement ou par l’utilisation de caractères génériques qui remplacent un ou plusieurs caractères (classiquement l’étoile « * » ou le « ? »)
- permettre de personnaliser les pages de recherche, si possible plusieurs pages différentes, pour correspondre aux attentes des utilisateurs
Fonctions avancées
- L’utilisation de moteurs élaborés est souvent envisagée pour prendre en charge des fonctions avancées comme :
- permettre l’enregistrement de résultats sous forme de « panier » par exemple, pour permettre aux utilisateurs de constituer une sélection
- permettre l’enregistrement des stratégies de recherche, c'est-à-dire les critères utilisés pour la recherche, afin de pouvoir les relancer simplement
- rechercher par étapes successives de façon à affiner une requête par rapport aux résultats de la recherche précédente
- étendre une recherche, par rapport à des synonymes par exemple
- fédérer la recherche sur plusieurs bases documentaires
- automatiser les approximations, suggestion orthographique et la lemmatisation (c'est-à-dire la recherche sur les racines des mots)
- permettre la recherche en langage naturel ou recherche par l’exemple, c'est-à-dire déduire l’équation de recherche d’une phrase ou d’un texte interprété par le moteur
- suggérer des résultats approchant à l’issue d’une recherche, par différents moyens :
- explicites, via des liens entre documents spécifiés dans l’indexation de chacun
- implicites, des rapprochements issus de calculs statistiques ou sémantiques
- détecter automatiquement des « entités nommées », c'est-à-dire des noms propres (personnes, lieux), et leurs relations.