Cluster MongoDB ElasticSearch

Posiiton filled

MongoDB ElasticSearch Cluster – Loading, customizing and querying a distributed database (P14004)

La société

Depuis sa création en 1979, Infotel, Société de Service et Éditeur de logiciels, est devenu un partenaire de référence pour les plus grands comptes (Banque, Assurance, Industrie, Service, Distribution, …) grâce à son expertise en informatique de gestion, depuis les applications mobiles jusqu’au Big Data. Aujourd’hui, plus de 1 600 collaborateurs composent le groupe Infotel et nos logiciels sont vendus dans le monde entier.

Le Groupe est resté fidèle aux valeurs humaines qui ont fait sa réussite :

  • un recrutement sélectif basé sur les compétences ;
  • un suivi rigoureux des collaborateurs par des commerciaux-managers ;
  • une gestion dynamique de la progression de carrière grâce à des missions valorisantes.

Sujet

Le stage porte sur l’optimisation d’une base de données distribuée MongoDB/ElasticSearch utilisée pour le stockage et la restitution performante d’images, de vidéos, de données audio ou texte. Une application Web permet de requêter et d’afficher les données de la base.

Ces données proviennent des documents brevet de l’Office Européen des Brevets (OEB) et sont essentiellement au format texte et pdf image.

Le stage s’effectuant dans un fort contexte international (France, Hollande, Allemagne, Chine, Suède), le stagiaire devra maitriser l’anglais.Il devra pouvoir évoluer de manière autonome tout au long de la durée de son stage.

Le stagiaire interviendra au sein des plates-formes de développement sur le site d’Infotel, et mènera à bien les tâches suivantes :

  • refonte du modèle de données MongoDB ;
  • adaptation de la DAO Java ainsi que des services et contrôleurs ;
  • chargement des données texte et image sur une base de plusieurs millions de documents (chargement par scripts Groovy) ;
  • chargement des pdf par page et des miniatures ;
  • amélioration/mise en place des requêtes ElasticSearch :
    • recherches par wild card ;
    • recherches itératives / Elasticsearch percolation (notification automatique lorsqu’un nouveau contenu correspond à des filtres pré-enregistrés) ;
    • ElasticSearch Analyser (analyse de texte pour créer les index) ;
    • ElasticSearch Stemming (rechercher marin retourne marine, marinier etc.) ;
    • ElasticSearch Scoring (sélection automatique du meilleur résultat) ;
    • etc.
  • amélioration de l’utilisation de la river permettant le transfert des données de Mongo vers ElasticSearch ;
  • mise à jour des versions de MongoDB, ElasticSearch et de la river si nécessaire ;
  • tests techniques et fonctionnels ;
  • communication active avec la personne qui gérera la partie IHM ;
  • rédaction de la documentation technique sur Wiki.

Le stage devra permettre d’améliorer de manière significative la recherche ElasticSearch mise en place sur les données de l’OEB, d’apporter de nouvelles fonctionnalités de recherche, de consolider la base MongoDB tout en optimisant les performances de recherche et de récupération de documents.

Le stagiaire devra travailler en étroite collaboration avec la personne qui s’occupera de la partie interface de l’application Web. Il devra prendre en compte les points suivants :

  • la base de données MongoDB est distribuée sur un cluster de 3 serveurs Linux Ubuntu 64bits ;
  • les index ElasticSearch sont également distribués sur un cluster de 3 serveurs Linux Ubuntu 64bits ;
  • des Replica Set sont en place sur la base MongoDB, de même qu’un système de « sharding » des données ;
  • un plugin « river » est utilisé pour faire le lien entre MongoDB (données) et ElasticSearch (index => requêtes) : MongoDB River Plugin for Elasticsearch de Richard Willy sur GitHub ;
  • l’application Web faisant appel à ElasticSearch et MongoDB, est construite avec le framework Grails.

Environnement et compétences requises

Le stagiaire devra maitriser les outils, les langages ou les techniques suivantes :

  • langages : Java, Groovy ;
  • bases de données : NoSQL MongoDB ;
  • connaissance du formalisme JSON utilisé dans MongoDB ;
  • moteur de recherche ElasticSearch ;
  • frameworks ; Grails et Spring ;
  • Git / Gitorious ;
  • Linux ;
  • connaissance sur l’administration de bases de données.

Lieu du stage

Stage dans nos locaux à Bagnolet, Tour Gallieni II (métro Gallieni).

Prolongement du stage

Le stage pourra être suivi par un emploi (CDI) à Infotel.

Votre candidature

Pour postuler, merci de nous envoyer votre CV et votre lettre de motivation par courrier électronique à l’adresse ci-dessous :