Apache Solr ou comment valoriser ses ressources /

 

Si vous souhaitez mettre à disposition des internautes un annuaire, une banque de documents ou tout autre volume important de données numériques - bref, si vous êtes dans une démarche dite d’Open Data, la technologie Apache Solr devrait vous intéresser.

En effet, Apache Solr apporte des réponses à une problématique majeure de la mise en ligne massive de données :

Comment valoriser les informations publiées et permettre aux internautes de les explorer et de les exploiter au mieux ?

Concrètement, Solr est d’abord un moteur d’indexation. Il va «lire» toutes les ressources qui lui sont fournies, qu’il s’agisse de fiches contacts, de documents PDF, de publications scientifiques ou autre, afin de réaliser un index de ces données, un peu à la manière de l’index d’un livre. Par exemple, il va noter que le mot «Insite» est présent dans le document numéroté 75, et que le mot «web» est présent dans les documents 42, 59 et 75. Solr peut indexer du texte (même dans des documents PDF ou Office), mais aussi des nombres, des dates, des coordonnées géographiques,…

À quoi sert cet index ? D’abord à gagner du temps (et économiser des capacités de calcul) lorsqu’une recherche est effectuée par l’internaute. S’il recherche les documents contenant «Insite» et «web», le système n’a pas besoin de reconsulter l’intégralité des documents. Il va simplement consulter l’index pour savoir que ces deux mots sont présents dans le document 75. Les principaux moteurs de recherche en ligne (Google, DuckDuckGo, Yahoo,…) s’appuient tous sur ce même principe.

solr1.jpeg

Mais Apache Solr ne se contente pas d’indexer basiquement les mots des documents :

  • Il tient compte des règles de construction des mots de la langue pour regrouper les mots ensemble. Par exemple, les mots «Développement», «développement», «Développements», «Développer», «Développeront» et «Developpement» seront indexés en français sous une même entrée : «developp».
  • Il gère les requêtes structurées. Par exemple, rechercher «Agence Insite» au lieu de Agence Insite permet de trouver les résultats contenant ces mots l’un à la suite de l’autre.
  • Il permet à l’internaute de faire une recherche progressive au sein des contenus, en ayant une vision du nombre de résultats pour chaque choix : ce qu’on appelle la recherche par facettes. Tester la recherche par facettes du CELSA-GRIPIC
  • Il permet de proposer à l’internaute des contenus similaires à celui qu’il est en train de consulter. Voir un bloc de contenus similaires sur le site Educauto
  • Il permet un classement intelligent des résultats, en tenant compte du nombre d’occurences d’un mot dans le document, mais aussi de sa position. Par exemple, le titre est considéré comme plus important que le résumé.
  • Il ignore les «mots insignifiants» (stopwords) de la langue, par exemple «le», «et», «avec»,… pour se concentrer sur les mots chargés de sens.
  • Il peut suggérer à l’internaute des mots à rechercher, soit à partir du début du mot renseigné, soit pour corriger une faute d’orthographe.
  • Il soulage le serveur d’hébergement du site en sous-traitant la recherche à un serveur externe spécialisé. Tester l’autocomplétion sur le site Alimenterre
  • Il met en cache les résultats de recherche : si plusieurs internautes font une même recherche à quelques minutes d’intervalle, le serveur va répondre encore plus rapidement au second internaute puisqu’il aura déjà la réponse.
  • … et encore beaucoup d’autres innovations telles que la recherche par proximité géographique, la prise en compte des synonymes,…

 

Vous n’êtes toujours pas convaincus ? Sachez aussi qu’Apache Solr est open-source, qu’il s’interface facilement et de manière relativement flexible avec le CMS Drupal, qu’il est utilisé par la NASA, Apple ou encore la Maison Blanche, et qu’Insite dispose d’une expertise sur cette technologie depuis 2010.

Nous avons particulièrement apprécié l’implication de l’équipe d’Insite tout au long du projet, ses compétences et sa réactivité !

Responsable communication du COORACE