• 14 janvier 2014

    ApéroTech #6 : Les moteurs d’indexation – Compte rendu

    Les moteurs d’indexation

    Nous avons consacré cette 6ème édition de l’ApéroTech aux moteurs d’indexation : SolR, Fredhopper, Sphinx et ElasticSearch avec les retours d’expérience de BlablaCar, Lafourchette, Melijoe, AF83 et TrendyBuzz

    image-header-aperotech

    Mardi 26 novembre 2013, de nombreux avec des CEO, CTO, Lead Dev nous ont rejoint. L’Apérotech a encore fait salle comble, parmi l’audience des eCommerçants et des médias comme Etam, Priceminister, La Redoute, Mediapart, Le Nouvel Observateur, et bien d’autres. Lors de cette soirée, nous avons abordé le thème et les enjeux de la recherche et d’indexation des contenus.

    A la Cartonnerie Paris, la soirée s’est articulée en 3 temps :

    • 18h30 : La problématique de la recherche par Arnaud Limbourg – ex CTO du 20minutes
    • 18h45 : L’utilisation d’un moteur d’indexation au sein d’Oxalide
    • 19h00 : Une Table ronde autour des retours d’expérience
    • 20h00 : Apéritif dînatoire

    ApéroTech #6 d’Oxalide – Les moteurs d’Indexation

    Voici le bref compte-rendu de l’Apérotech sur les moteurs d’indexation, vous avez à disposition toute la conférence en audio en remplissant ce formulaire ci-dessous.

    Prénom*
    Nom*
    Fonction*
    Société*
    Email*

    * champs obligatoires

    Les moteurs d’indexation : C’est quoi ?

    « Aujourd’hui les gens s’attendent à avoir en entreprise le même genre de solution que Google. [..] comme ça l’on tape ce que l’on veut, et l’on trouve tout ! Avec des résultats hyper pertinents ! »

    Arnaud_LIMBOURG_ApéroTech6_600x300

    Présentation de la problématique des moteurs d’indexation par Arnaud LIMBOURG – ex CTO du 20minutes

    Le plus connu de tous est bien sûr Google, il crawle tout le web à la recherche de contenus à indexer pour alimenter et améliorer la pertinence de ses résultats. Mais pourquoi pas utiliser Google pour la recherche à usage interne ? Google est une boite noire ne propose pas la même la flexibilité d’indexation et de recherche que ses concurrents. Aujourd’hui, ElasticSearch, Fredhopper, Sphinx et SolR se distinguent sur le marché de l’indexation. Ils peuvent indexer des pages, des bases de données ou tout autres contenus présents dans le site.

    On parle de moteur d’indexation plus que de moteur de recherche car ils peuvent être aussi utilisés comme source de contenus pour les pages du site. Ils donnent la possibilité d’ajouter des fonctionnalités à MySQL (par exemple : le facetting). Au lieu de faire des requêtes en base données, les moteurs d’indexation alimentent le contenu du site. La base de données est plus disponible pour faire des requêtes à forte valeurs ajoutée comme par exemple : la création de compte, l’enregistrement de commentaires, le tunnel de paiement, etc …

    SPHINX : L’importante volumétrie des données – TrendyBuzz

    Benjamin FABRE - CTO associé de TrendyBuzz
    Benjamin FABRE – CTO associé de TrendyBuzz

    TrendyBuzz observe et analyse tout ce qui est publié aux sujets de leurs clients sur le web. Les analystes de TrendyBuzz veillent sur l’e-réputation et l’anticipation des risques et des crises. La société indexe des contenus web pertinents en temps réel. Le socle technique de TrendyBuzz est écrit en PHP avec des crawlers qui étaient au départ en Python puis du Java pour gérer le multi-threading et finalement MySQL + Sphinx.

    Au moment du choix, Sphinx était l’outil le plus adapté pour traiter une volumétrie importante de données. Cette solution open-source écrite en C++ est plus performante et transparente comparée à Lucene de l’époque. Après quelques années d’utilisation et d’optimisation, TrendyBuzz a poussé les performances avec Sphinx. Aujourd’hui, il indexe plus de 30 millions messages par jour soit plus de 10 milliards par an.

    D’un point côté de technique, Sphinx est très consommateur de RAM. Pour sa configuration de Sphinx en master/slave, il faut respectivement 256 GO et 128 GO de RAM pour TrendyBuzz.

    ELASTICSEARCH : Des ambitions européennes – BlablaCar

    Olivier Dolbeau - DSI de BlablaCar

    Olivier Dolbeau – DSI de BlablaCar

    BlablaCar (anciennement covoiturage.fr) est le leader français du covoiturage en ligne. Le service permet à tout internaute de rechercher et réserver une place dans une voiture faisant un trajet lui correspondant. Il y a 1 an 1/2, Blablacar a été complètement réécrit avec Symphony 2, Rabbit MQ, Memcached et Redis. Pour l’indexation, elle a été confiée à ElasticSearch qui fournit : les trajets, les voitures disponibles sur le trajet choisi, le stock de places disponibles dans cette voiture et le tarif proposé pour chaque passager.

    Ce sont les limites de MySQL et l’ambition de s’étendre sur en Europe qui ont motivé le choix d’ElasticSearch. MySQL n’étant pas scalable, il fallait trouver le moyen d’avoir un index de recherche distribuable et distribué avec des fonctionnalités de facetting. L’intégration d’ElasticSearch a été plus simple car d’un membre de l’équipe de développeur l’avait déjà utilisé. Néanmoins, il manque encore quelques fonctionnalités à E.S comme de faire du grouping et de mettre à jour les mapping.

    Aujourd’hui, le moteur indexe 12 000 documents et gère en moyenne 60 recherches par seconde et 400 en pics.

     SOLR : La recherche multi-critères – Lafourchette.com

    Florent Poissonnet - CTO de lafourchette.com

    Florent Poissonnet – CTO de lafourchette.com

    LaFourchette.com est le leader français de la réservation de restaurant en ligne. Ce site propose des réservations de restaurants à prix réduit avec un backoffice de gestion des réservations en ligne pour les restaurateurs. Lafourchette.com est dans un environnement PHP/Symfony 2 avec Nginx, MySQL et SolR + Memcached +Redis + RabbitMQ. Avant la recherche et l’indexation étaient gérée avec une requête SQL en full text avec MyISAM.

    Au moment du choix, SolR était la meilleure réponse au besoin de recherche multi-critères. L’indexation et l’alimentation de données regroupent les informations suivantes : une ville, les restaurants disponibles, les places disponibles, la réduction proposée et les commentaires associés. Le facetting était la fonctionnalité déclencheur pour l’usage de SolR.

    Cet outil intégré simplement au webservice via des requêtes HTTP. Il est utilisé par l’équipe de 19 développeurs, dans un environnement LAMP avec du PHP sur Symfony2. Le périmètre fonctionnel est complexe, aujourd’hui SolR gère 12 000 documents, énormément de champs dynamiques, et des documents de 2 à 2000 ko.

    Quant à l’infrastructure il a suffit d’un serveur dédié  à l’indexation, de la haute disponibilité et de l’actif / actif avec un HA proxy 1, ainsi que beaucoup de RAM.

    FREDHOPPER : La recherche dans un catalogue de produitsMelijoe

    Gwen Le Calvez - RSI de Melijoe

    Gwen Le Calvez – RSI de Melijoe

    Melijoe.com est un site e-commerce spécialisé dans la vente de vêtements de grandes marques pour enfant avec plus de 200 000 clients, 30 000 produits. Melijoe est basée sur un Prestatshop très customisé, l’application est trop lourde pour s’appuyer uniquement sur le moteur interne de Prestashop. Leur choix de moteur d’indexation s’est porté sur Fredhopper, une solution SAAS propriétaire conçue pour l’activité e-commerce.

    Melijoe a choisi Fredhopper pour sa capacité à monter en charge avec 3000 à 4000 recherches en simultanées, ses fonctionnalités d’indexation et de recherche dans un catalogue, les problématiques de recherches multi-critères, la prise en compte des déclinaisons produits et le SEO. A ces besoins fonctionnels s’ajoutent les avantages d’une solution SaaS : la simplicité d’installation et la maintenance.

    ELASTICSEARCH : La flexibilité du moteur –  AF83

    Dominique Rose-Rosette - Développeur d'AF83

    Dominique Rose-Rosette – Développeur d’AF83

    AF83 est une agence basée à Paris et à San Francisco, spécialisée en conception d’expérience, technologie et communication. Ils ont accompagné de nombreux clients notamment VideoMuseum (un référentiel des musées nationaux) où ElasticSearch a été nécessaire.

    Sur ce projet, le choix d’ElasticSearch a été motivé par sa souplesse éprouvée lors de précédents projets et par le besoin de mettre en place un système pour générique de recherche avec du facetting via une API. C’était cette simplicité et cette souplesse de mise en œuvre qui ont convaincu l’équipe de développement. Les solutions alternatives comme SolR et NoSQL ne couvraient pas ses besoins.

    Une phase de conception importante et de la RAM, de la RAM…

    Le constat est le même les moteurs d’indexation nécessitent une grande quantité de mémoire. Le conseil de tous est unanime : bien prendre son temps pour définir et déterminer les données à indexer et à rechercher. Cette conception va déterminer en grande partie  l’implémentation et le dimensionnement optimum de l’architecture logicielle et infrastructure.

    Partager des coupes de champagne et des petits fours

    C’est autour d’un apéritif dînatoire où les invités ont pu échanger et partager leurs problématiques respectives sur les moteurs d’indexation.

    aperotech6-miam-oxalide

    A très bientôt pour un nouvel ApéroTech courant du premier trimestre 2014.

    , , , , , , , , , , , , ,

Newsletter

Inscrivez-vous et tenez vous au courant de l’actualité Oxalide