À propos de l’implémentation d’Elasticsearch pour Koha

Formulaire de recherche Koha

Voici maintenant plusieurs semaines que nos premiers clients sont en production avec le moteur d’indexation Elasticsearch dans Koha. Nous avons ouvert la mise à jour à quatre volontaires. Merci aux utilisateurs qui participent aux retours de test pour leur activité et leur patience et à ceux qui contribuent d’une manière ou d’une autre à la communauté.

Je vous propose donc un état des lieux de son implémentation à ce jour.

La version déployée est la 18.11.x enrichie de certains patchs nécessaires à un fonctionnement sans anomalie majeure. L’activité sur bugzilla est régulière et nous y participons dès que possible. Pour donner une idée, nous avons passé environ une centaine de jours sur le couple Elasticsearch/Koha dont 24 jours qui ont été financés par la BULAC pour les accompagner dans les évolutions et soumissions communautaires. Ils ont été les premiers français à franchir le pas bien avant nous. Nous avons pris le temps de former une équipe en interne sur Elasticsearch avec Jolicode. Cette formation a été une impulsion non négligeable dans l’apprentissage et la découverte de l’étendue des possibilités exceptionnelles de cette solution de recherche. Nous avons aussi fait une première analyse des choix faits dans Koha qui pourront bénéficier d’améliorations dans le futur.

Elasticsearch est devenu le moteur de recherche de référence. Sa réputation et popularité sont importantes. C’est un logiciel libre et sa communauté est forte. La documentation est de qualité. Le cœur de métier d’Elasticsearch est bien sûr la recherche et il est utilisé pour d’autres usages. Son architecture technique et sa mise en œuvre sont de réels atouts. Le démarrage avec ce produit tant côté système que développement est rapide, cependant il est nécessaire de passer du temps pour avoir une implémentation de qualité. Son utilisation est en temps réel : le document indexé peut être recherché immédiatement. Une fois la configuration peaufinée, ce moteur de recherche est très efficace et offre une pertinence des résultats remarquable. J’en oublie certainement, l’important est que maintenant il est implémenté et utilisable avec Koha !

Les premières mises en production nous ont permis de :
– déployer une infrastructure technique de qualité pouvant accueillir les prochaines bases
– corriger les principales anomalies de fonctionnement
– automatiser ce qui peut l’être afin de passer plus de temps sur ce qui compte

Vous trouverez un point sur le vocabulaire dans la documentation BibLibre.

« C’était mieux avant »
– Dans le catalogue bibliographique, la recherche sur les formes rejetées ne fonctionne pas (encore)
– La syntaxe en recherche dans Koha est trop sensible (ceci est dû à une utilisation du « query string », c’est une mauvaise implémentation, nous travaillons à passer au « simple query string » et revoir les implémentations des requêtes)
– Les implémentations de la moulinette Sudoc et du vendangeur sont en cours de test (ça arrive bientôt)

« C’est mieux maintenant »
– Interface de configuration des champs indexés et mappings avec les données Unimarc
– Super moteur de recherche qui n’a plus besoin de prouver ses qualités, utilisé chez les plus grand comme wikipedia, ebay, facebook, github etc.
– Écosystème très riche: autres logiciels s’appuyant sur Elasticsearch pour offrir la meilleure expérience utilisateur possible (kibana, cerebro etc.)
– Réel calcul de la pertinence (avec Zebra, seul le nombre d’occurrences compte, avec Elasticsearch, ça va beaucoup plus loin https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html)
– Pondération des résultats en fonction de poids donnés aux champs souhaités
– Algorithmes d’analyse de texte dans différentes langues complets et gérés par les communautés (identifie et regroupe par exemple les termes ayant les mêmes racines -stemming)
– Gestion pour l’administrateur système : performances, stockage, sauvegardes (clustering)
– Outils techniques de travail et d’analyse (API REST, Kibana)

« Ce sera encore mieux bientôt »
– Bien que Elasticsearch soit un outil excellent, son implémentation dans Koha nécessite encore des ajustements
– Recherche exacte pour les autorités
– Reconstruction de l’index sans perte de service de recherche (c’est possible techniquement, reste à l’implémenter avec les alias Elasticsearch notamment)
– Potentiel restant à exploiter
* affichage du surlignage
* gestion des configuration d’analyse de texte
* recherche dans les formes rejetées
* jointures
* configurations des facettes
* suggestions
* formes associées
* profiter de la puissance du moteur sans se soucier de la rétro-compatibilité avec Zebra

« C’est important à savoir »
– dans la version actuelle, il est tout à fait possible de retourner sur Zebra en quelques clics puisque les deux solutions sont compatibles (ce qui complexifie par ailleurs les évolutions).
– d’un point de vue administration système : Zebra est hébergé sur chaque machine Koha. Elasticsearch, lui, centralise tous les index dans un cluster unique afin de permettre une meilleure gestion et capacité à gérer les pannes.
– Mettre en œuvre un cluster Elasticsearch et l’utiliser demande une infrastructure dédiée et l’acquisition de nouvelles compétences (c’est une bonne nouvelle car elles pourront servir à d’autres usages)
– L’implémentation aujourd’hui peut être améliorée. Elle est intégrée au cœur de Koha et est enrichie pour fournir à l’utilisateur une meilleure expérience de recherche.

En conclusion : nous allons poursuivre le déploiement progressif d’Elasticsearch chez nos clients. Si vous souhaitez vous lancer seul, nous vous suggérons de bien vous former avant pour comprendre et mettre en œuvre la solution de manière pérenne. Et si vous voulez que nous vous accompagnions, n’hésitez pas à prendre contact avec notre service commercial pour discuter d’un passage à Elasticsearch !

Share

A propos Claire Hernandez

Développement, agilité, facilitation et R&D au service des utilisateurs de logiciels libres pour la culture.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *