Marseille JUG Novembre 2013 Lucene Solr France Labs

3,523 views

Published on

Talk about Apache Lucene Solr, connectors (Apache ManifoldCF) and Big Data (Apache Hadoop)

Published in: Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,523
On SlideShare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
118
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Marseille JUG Novembre 2013 Lucene Solr France Labs

  1. 1. Lucene/Solr Marseille JUG 28/11/13 Olivier TAVARD
  2. 2. Introduction  A propos de moi :     Cofondateur de la société France Labs Développeur Formateur A propos de France Labs :   Startup créée en 2011 Unique Partenaire officiel de LucidWorks et de Constellio pour la France
  3. 3. Introduction   Domaine: Moteurs de recherche d'entreprise Open Source 2 activités:  Consulting/support/training sur Lucene/Solr/Constellio/LucidWorks  R&D (algorithmes de ranking, connecteurs, réseaux sociaux)
  4. 4. Pourquoi les technologies Lucene/Solr ?  Besoins d'entreprise : avoir une bonne solution logicielle, avec un support fiable  Par conséquent notre choix de Lucene/Solr : Large communauté autour de Lucene/Solr  Schémas de support professionnel pour Lucene/Solr  Solr 4 pensé pour le calcul distribué  Utilisé par Twitter, Linkedin, eBay, Salesforce, IBM, Apple 
  5. 5. Architecture La recherche est un oignon !
  6. 6. Architecture La recherche est un oignon !
  7. 7. Architecture La recherche est un oignon matriciel !
  8. 8. Architecture Lucene
  9. 9. Lucene      Créé en 2000 par Doug Cutting. Version Actuelle : Lucene v. 4.6 (Novembre 2013) Projet Open Source, Apache depuis 2001 Librairie de recherche “full-text” Rapide, stable, performant, modulable 100% Java (pas de dépendances)
  10. 10. Lucene Différence avec une base de données     Plus rapide pour récupérer un doc à partir de son contenu Résultats scorés Non relationnelle, structure non fixe Champs qui peuvent contenir plusieurs valeurs
  11. 11. Lucene  Un outil qui permet: De créer un index à partir de documents  D’effectuer des recherches dans cet index  INDEX
  12. 12. Lucene Index inversé © http://untiluknow.blogspot.com
  13. 13. Lucene Scoring
  14. 14. Lucene Scoring   Formule paramètrable Combinaison de Boolean Model  Vector Space Model  • • • Term Frequency Inverse Document Frequency …
  15. 15. Lucene Scoring  Term Frequency (TF) :  Fréquence d’un Terme dans un document France Labs Bienvenue sur le site de France Labs. Créée en 2011, France Labs est une société composée d'experts en gestion de l'information. Que ce soit pour de l'expertise, pour nos produits ou pour nos solutions métiers, nous faisons en sorte que vous augmentiez votre efficacité par une meilleure exploitation de vos données. France Labs, spécialiste des outils de recherche open source, propose des plugins innovants et des services de conseil, intégration et maintenance, sur Lucene, Solr et Constellio. Europe, nous sommes le partenaire de Constellio, solution complète de recherche.
  16. 16. Lucene Scoring  Inverse Document Frequency (IDF):  Rareté du terme dans l’ensemble du corpus Expertise Lucene Souhaitant intervenir plus en amont dans la vie de l’entreprise, pour vous proposer toujours plus de conseils à partir de nos expertises, Expertise & Conseil a créé Formation & Conseil : une structure de formation destinée aux acteurs de performance de l’entreprise. Apache Lucene, la fameuse technologie pour l’indexation, la recherche et l’analyse du texte est la base de plusieurs serveurs Open Source. La présentation détaillera Solr et ElasticSearch sous la forme « Tools in Action » - démonstrations en direct des différents outils.
  17. 17. Lucene Document Document : unité d’indexation  Field : partie d’un document, contient les données  Term : unité atomique d’un champ  Si on veut indexer un livre, on aura:  Title : Lucene in Action • Author : Erik Hatcher, Otis Gospodnetid • Description : Lucene is a gem in the open-source... • Content : … Term Field • … • Document
  18. 18. Lucene Scoring  Boosts: Modifie le score d’un document  Si Boost > 1  •  Score du doc plus élevé A l’indexation: • Peut se faire sur les champs: - Field Boost • Sur un document en entier: - Document Boost
  19. 19. Lucene Scoring  Boosts:  A la requête: • • • Boost sur certains champs Boost sur certaines valeurs de la requête Et d’autres cas…
  20. 20. Lucene Scoring  Boosts:  Boost sur le Titre Fonctionnalités Titre : Fonctionnalités Content : Interface d'administration en HTML, Réplication, Mise en cache Recherche distribuée, Recherche à facettes, Recherche géospatiale ,API HTTP/XML, JSON et bibliothèques pour les langages de script Python et Ruby, Intégration des bases de données Titre : Highlighter Content : Cette fonctionnalité permet de mettre en surbrillance les termes recherchés. Ce principe est le même que les pages "en cache" de Google où les termes recherchés apparaissent surlignés en jaune. C'est une fonctionnalité puissante et pratique.
  21. 21. Lucene Recherche pertinente   Récupérer les bons résultats… … et seulement ceux là Precision   Pourcentage de docs pertinents sur les docs retournés Recall  Pourcentage de docs pertinents retournés sur le total des docs pertinents  Trouver un bon compromis… Documents Pertinents Docs retournés et pertinents Document Retournés
  22. 22. Lucene Indexation - Architecture Apache Tika © Lucene in Action, Second Edition
  23. 23. Lucene 2 étapes Query Parser Parser Analyzer Analyzer Index Writer Results Index Searcher
  24. 24. Lucene Analyzer Analyzer Chaine de composants  Extraction de termes du texte  Normaliser les données  A l'indexation/Requête  LowerCaseFilter … WhiteSpace Tokenizer StopFilter …
  25. 25. Lucene Analyzer Différents analyzers:  Spécifique au langage • Stemming, Stopwords… Analyzer phonétique  Spécifique aux données  • • • Chemin Nom du fichier …
  26. 26. Lucene Différents Analyzers © Lucene introduction, Otis Gospodnetic
  27. 27. Lucene Requêtes – Comment les créer  Créées programmatiquement à partir d’une interface Lucene Query  Créées à partir d’une chaîne de caractères parsée par un “Query Parser” Lucene Query type:voitures AND prix:[3000 TO 5000] Query Parser
  28. 28. Lucene Match Document Analysis Query Analysis Coquilles SaintJacques Coquilles saint-jacques WhitespaceTokenizer WhitespaceTokenizer Coquilles SaintJacques Coquilles WordDelimiter Coquilles Saint WordDelimiter Jacques Coquilles LowerCaseFilter coquilles saint saint-jacques saint jacques LowerCaseFilter jacques coquilles Match saint jacques
  29. 29. Lucene Schema Global © Lucene in Action, Second Edition
  30. 30. Lucene Pourquoi ce n’est pas suffisant?  "Simple" bibliothèque  Besoin d’une couche serveur et d’une UI
  31. 31. Lucene Quizz anti-sommeil    Lucene a été créé en: 1999, 2000, 2010 ? Lucene est une servlet? Marseille est la capitale de la ?
  32. 32. Architecture Solr
  33. 33. Solr      Lucene « embarqué » dans une webapp Créé en 2004 par Yonik Seeley à CENT Networks In 2006, Solr devient open-source et été cédé à la Apache Software Foundation En 2010, fusion des projets Lucene et Solr Version Actuelle : Sorl 4.6 (Novembre 2013)
  34. 34. Solr     APIs XML/HTTP de type REST Configuration par fichiers XML Mécanisme de Cache, Réplication Interface admin web
  35. 35. Solr Interfaces  Interfaces HTTP pour :  ajouter des documents (POST) •  http://localhost:8983/solr/update effectuer des recherches (GET) • http://localhost:8983/solr/select
  36. 36. Solr Architecture © www,oblady,com
  37. 37. Installer SOLR Installer et tester Solr en 1 minute Télécharger le dernier binaire (V.4.6 11/13) http://lucene.apache.org/solr/  Extraire le zip  Lancer java –jar start.jar dans apache-solr-4.4.0/example/  http://localhost:8983/solr 
  38. 38. Solr Functionnalités  Queries       Phrase query Wildcard query Range query Proximity query Fuzzy query Boolean query
  39. 39. Solr Functionnalités  Autocomplete
  40. 40. Solr Functionnalités  Spellchecker
  41. 41. Solr Functionnalités  Faceting
  42. 42. Solr Functionnalités  Geospatial search
  43. 43. Solr Functionnalités  More Like This Obtenir des documents similaires à un document  Similarité textuelle   Highlighting  Synonymes
  44. 44. Solr Quizz anti-sommeil I  Solr est un projet Apache, mais sous quelle licence ?  Que fait Solr par rapport à Lucene ?
  45. 45. Indexer des documents Indexer des documents
  46. 46. Indexer des documents Indexer des documents  Récupérer les documents Apache ManifoldCF  Google Connectors  Nutch  Aperture   Préparer les documents Convertir en XML ou JSON  Respecter le schema.xml  Peut contenir plusieurs Docs 
  47. 47. Indexer des documents Indexer des documents  Poster les documents par HTTP  Avec cURL (linux) •  Ex : curl http://localhost:8983/solr/collection1/update H "Content-type:text/xml" --data-binary @mem.xml Post.jar et Post.sh • Ex : java -jar post.jar *.xml
  48. 48. Indexer des documents Indexer des documents  Mise à jour:   Document en entier Depuis Solr 4.0:  Modifier la valeur d’un field
  49. 49. Construire son schéma Schema.xml  Décrit les données :   Contient les champs d’un document Et la façon de les traiter (Analyzer): Au moment de l’indexation d’un document  Au moment de la requête 
  50. 50. Construire son schéma Schema.xml  Types des champs des documents à indexer   Liste des champs des documents   Text, String, Date…. Id, author, type…. Clé unique par document Manuel  UUID 
  51. 51. Construire son schéma Schema.xml
  52. 52. Construire son schéma Schema.xml  Exemple de schéma simple :  Voitures :
  53. 53. Configurer Solr SolrConfig.xml Principal fichier de configuration de Solr Lié à une collection  Définit les interactions avec les clients (requêtes)  •  Ajout de fonctionnalités Comportement interne du serveur
  54. 54. Interroger Solr (queries) Select  URL : select   http://localhost:8983/solr/select... HTTP GET request Web browser  Curl  SolrJ  … 
  55. 55. Interroger Solr 1ère recherche  Recherche sur tout le contenu http://localhost:8983/solr/select?q=*:*  *:* : recherche de tout sur tous les fields 
  56. 56. Interroger Solr UI Admin  Accessible à cette URL : http://localhost:8983/solr/admin  Complètement redesignée pour Solr 4  =>
  57. 57. Interroger Solr UI Admin
  58. 58. Interroger Solr UI Admin
  59. 59. Interroger Solr 1ère recherche Démo !
  60. 60. Interroger Solr Structure de l’URL  http://localhost:8983/solr/formation/select? q=*:*&start=0&rows=10&fl=description /solr/ : contexte de l’application web où Solr est installé  /formation : Core de Solr  Select : request handler  Après le ? => paramètres non ordonnés 
  61. 61. SolrJ Définition   SolrJ (aussi connu sous le nom de SolJava) : API pour communiquer avec Solr au travers d'applications Java Package apache.solr.client.solrj :       ResponseParser SolrQuery SolrRequest SolrResponse SolrServer StreamingResponseCallback
  62. 62. SolrJ Définition  Simple à utiliser : Création d'un SolrServer  Envoi de SolrQuery  Réception de SolrResponse 
  63. 63. SolrJ Communication avec le Solr server  Connexion HTTP Les données sont envoyées en javabin par défaut : gain de rapidité  Utilisation de la librairie Apache HttpComponents Client  • • HttpSolrServer solr = new HttpSolrServer("serverUrl"); ConcurrentUpdateSolrServer solr = new ConcurrentUpdateSolrServer(solrServerUrl, queueSize, threadCount)
  64. 64. SolrJ Exemple complet  Exemple : Communication avec le serveur Solr en HTTP  Indexation de documents  Interrogation de Solr  Affichage des réponses 
  65. 65. SolrJ Exemple complet  Communication avec Solr en HTTP String serverUrl = "http://localhost:8983/solr/collection1"; HttpSolrServer server = new HttpSolrServer(serverUrl);
  66. 66. SolrJ Exemple complet  Indexation //solr.setParser(new BinaryResponseParser()); SolrInputDocument doc1 = new SolrInputDocument(); doc1.setField("id", "1"); doc1.setField("text", "hello SolrJ"); server.add(doc1); … solr.commit(true, true);
  67. 67. SolrJ Exemple complet  Requête SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.setStart(0); query.setRows(10);
  68. 68. SolrJ Exemple complet  Réponse QueryResponse response = solr.query(query); SolrDocumentList docs = response.getResults(); for(int i=0; i<docs.size(); i++) { SolrDocument doc = docs.get(i); System.out.print("id : "+doc.getFieldValue("id")); System.out.println(" text :" + doc.getFieldValue("text")); }
  69. 69. SolrJ Exemple complet  Réponse On obtient dans la console : INFO: Creating new http client, config:maxConnections=128&maxConnectionsPerH ost=32&followRedirects=false id : 1 text : hello SolrJ id : 2 text : coucou
  70. 70. Solr Quizz anti-sommeil III  SolrJ est le 2eme nom de DJ McSolaar ?  Solr permet d’analyser graphiquement les statistiques d’usages?  Solr tourne sous Tomcat ou sous Jetty ?
  71. 71. Solr Performances  Scaling  1 serveur Solr peut gérer • •  Des millions de documents À peu près 1000 queries /seconde Nous devons "scaler" si… Le volume de données augmente • Le volume de queries augmente • Haute disponibilité •
  72. 72. Scalability Replication Indexing Master Maître Replicate Slave Slave Load Requêtes Balancer Requêtes Queries
  73. 73. Scalability Distributed Search Subquery Shard1 Queries Aggregated results Shard2 Shard3
  74. 74. Solr Cloud Solr Cloud  Nouvelle architecture pour la scalabilité   En développement Nouveau système de mise à l’échelle de Solr  Pack 2 en 1 • •  Distribution Réplication Architecture flexible
  75. 75. Solr Cloud Zookeeper   Logiciel de gestion de configurations pour système distribués Contient les configs des collections pour Solr Cloud    Sauf solr.xml Les machines s’enregistrent et se désenregistrent Statuts des shards enregistrés
  76. 76. Solr Cloud 1 collection - 2 shards
  77. 77. Solr Cloud 1 collection - 2 shards  Première instance avec Zookeeper embarqué:  Deuxième instance:  Visualisation:
  78. 78. Solr Cloud 1 collection - 2 shards
  79. 79. Solr Cloud 1 collection - 2 shards – 2 replicas
  80. 80. Solr Cloud 1 collection - 2 shards – 2 replicas  Pas de Maître/Esclave   Mais Leaders et réplicas 1 Leader par shard 0 à N replicas  Elu automatiquement  Comme un replica mais avec en bonus une logique de coordination 
  81. 81. Solr Cloud 1 collection - 2 shards – 2 replicas  Comment sont assignées les instances de Solr? Automatiquement lors du démarrage!  Tant que numShard non atteint  • •  Ajout du shard N+1 Désignation comme leader Quand numShard atteint • • On peut commencer à indexer/chercher Ajout de replica au shard en possèdant le moins
  82. 82. Solr Cloud Indexation  On utilise un CloudSolrServer en SolrJ  Pointé sur Zookeeper • • Transfert au shard concerné Indexation des docs sur le shard et ses replicas
  83. 83. Solr Cloud Indexation  On envoie les docs à n’importe quelle machine  Si la machine est une replica •  Envoie les docs à son leader Si la machine est un leader • Si les docs concernent ce shard - Indexation des docs sur le shard et ses replicas • Sinon - Transmet les docs au shard concerné
  84. 84. Solr Cloud Recherche   Recherche sur n’importe quelle machine Near Real Time  Peut avoir un délai • Suivant que l’update arrive sur le bon shard ou non
  85. 85. Scalability Solr Cloud  Solr Cloud
  86. 86. Solr Cloud Avantages  Architecture très flexible  En cas d’augmentation de charge •  En cas de diminution de charge •  Ajout de machines qui pointent sur Zookeeper Eteindre des machines Zookeeper Gestion centralisée des configurations  Visualisation du statut des shards 
  87. 87. Solr Cloud Avantages  Réplication    Automatique et fiable Distribution automatique des MAJs Distribution automatique des recherches
  88. 88. Solr Cloud Désavantages  Indexation plus lente   Transmissions des docs entre shards Nouvel environnement Certaines fonctionnalités non implémentées  Susceptible d’évoluer 
  89. 89. Connecteurs et écosystème Solr Marseille JUG 28/11/13 Olivier TAVARD
  90. 90. Crawler Role    Se connecter à un système externe Crawler les données Autorisations des données crawlées Early Binding  Late Binding 
  91. 91. Crawler Role     Mode push ou pull Extraire le contenu Crawling normal ou delta Minimiser l'impact sur le système crawlé Charge  Programmation heure 
  92. 92. Crawler Crawlers  Beaucoup de Crawlers open source  Aperture •  Nutch •  File DIH •  File, Web DB, XML Et des Framework Google Enterprise Connector  Apache Manifold CF 
  93. 93. DIH Définition  DIH : Data Import handler Contribution à Solr (répertoire contrib)  Permet de traiter et d'importer des données :  • • • • • Base de données (supporte le delta) Fichiers Emails Documents riches XML (XLST transformations et Xpath extractions)
  94. 94. DIH Définition  DIH : Data Import handler  Interface d'administration : http://localhost:8983/solr/#/collection1/dataimport
  95. 95. SolrCell Définition  Extraction Request Handler aka Solr Cell Indexation de documents riches (PDF, Office, images, etc…)  Basé sur Tika :  • • • Upload des fichiers à Solr par le request handler Extraction du texte par Tika Indexation du contenu dans Solr
  96. 96. Apache Tika  Extraction de contenu : Détection du Mime-type  Librairies embarquées  • •  Lecture du contenu Extraction des metadonnées Extensions de fichier supportées: • • • • • • • XHTML MS Office (OLE2 et OOXML) OpenDocument PDF RTF Zip Fichiers Audio/Video/Image
  97. 97. Crawler Google Connector Manager  Google Connector Manager    Pas créé pour Solr    Créé par Google pour le Google Search Appliance Google Connector Manager et connectors en license Apache V.2 Intégré par Constellio Late et early binding Delta crawling
  98. 98. Crawler Google Connector Manager  Connectors :      File Share DB EDM (Alfresco, Nuxeo) Email XML
  99. 99. Crawler Manifold CF Basé sur le « Connector Framework » developpé by Karl Wright pour l’appliance MetaCarta  Donné à la fondation Apache Software en 2009 (première version en 2011)  Sortie d’incubation en mai 2012  Version actuelle 1.4.1 (novembre 2013) 
  100. 100. Crawler Manifold CF      Delta Crawling Authorization service IHM et API de configuration Pensé pour Solr Architecture de plugins
  101. 101. Crawler Manifold CF  Connecteurs disponibles :  Content Repositories: • •  Authorities: • •  SharePoint, Documentum, Windows Share… CMIS (Alfresco), DB, RSS, Wiki AD LDAP Indexes: Solr • Elastic Search • … •
  102. 102. Crawler Manifold CF Manifold CF Windows Share Conn. 1 Conn. 1 AD Sharepoint Conn. 2 Conn. 1 OpenLDAP Repositories Conn. N Conn. N Get User access token Docs and access tokens Extracting Handler Solr MCF Search Plugin … … Repository N Manifold CF authority service Manifold CF pull Agent Authority N Authorities
  103. 103. Ajaxfrancelabs: Ajax framework Pour Solr et Constellio      Inspiré par AjaxSolr Côté client Javascript + ajax Fournit un ensemble de widgets préconfigurés Possibilité d’étendre les widgets
  104. 104. Ajaxfrancelabs: Ajax framework
  105. 105. ManifoldCF, Francellio Démo ! Démo !
  106. 106. Hadoop Vue d’ensemble    Créé par Doug Cutting Framework open source Inspiré par les papiers sur Google Map Reduce et Google File System
  107. 107. Hadoop Avantages    Traiter des grands volumes de données en un minimum de temps Stocker des immenses volumes de données : plusieurs To ou même Po Fonctionne sur machines de configuration faible et peu coûteuses
  108. 108. Problématiques adressées Définition  Framework open source pour écrire et exécuter des applications distribuées qui traitent de très larges volumes de données : Accessible Hadoop fonctionne sur de très larges clusters ou sur le cloud comme avec Amazon EC2  Robuste Hadoop est architecturé de telle façon que les pannes matérielles peuvent arriver et peut les gérer 
  109. 109. Problématiques adressées Définition Mise à l'échelle Mise à l'échelle linéaire pour gérer de larges volumes de données en ajoutant des nodes supplémentaires au cluster  Simple Hadoop permet d'écrire facilement du code 
  110. 110. Architecture de Hadoop  Architecture logique Storage layer  Execution layer 
  111. 111. Architecture de Hadoop  Les utilisateurs peuvent soumettre des jobs : • • S'exécutent sur l'execution layer Lecture/Ecriture des données à partir du storage layer
  112. 112. Architecture de Hadoop  Storage layer : Hadoop Distributed File System (HDFS) • S'exécute au dessus du système de fichier régulier de l'OS, Linux ext3 très souvent • Le processus gère le stockage local sur chaque node • Le processus sur le master gère les métadonnées •
  113. 113. Architecture de Hadoop  Execution layer : Hadoop Map-Reduce • Responsable de lancer un job en parallèle sur plusieurs serveurs • Gère les "retry" d'une tâche en cas d'échec et valide les résultats complets • Les jobs consistent en opérations spéciales : "map" et "reduce" •
  114. 114. Architecture de Hadoop  Scalable : • Couches de stockage et d'excéution sont sur plusieurs nodes (serveurs)
  115. 115. Architecture de Hadoop  Fiable : • • • • Chaque bloc est répliqué, généralement 3 fois Chaque bloc fait l'objet d'une vérification de checksum Chaque tâche doit réussir ou le job échoue Toutes les copies de données intermédiaires sont validées
  116. 116. Architecture de Hadoop  Tolérant aux pannes : • • • Toutes les tâches échouées sont automatiquement réessayées Les transferts de données échoués sont automatiquement réessayés Les serveurs peuvent joindre et quitter le cluster à tout moment
  117. 117. Architecture de Hadoop  Simple: • • Réduit la complexité Système d'exploitation conceptuel qui gère plusieurs CPU et disques
  118. 118. Architecture de Hadoop  Cluster Hadoop typique: • A un serveur maître - Processus qui gère le système de fichiers - Processus qui gère les jobs • A plusieurs serveurs esclaves - Processus qui gère les données sur les disques locaux - Processus qui exécutent des taches sur le serveur • Utilise un réseau de haute vitesse entre les serveurs
  119. 119. Hadoop HDFS   Données converties en blocs et distribuées sur des nœuds Chaque bloc est répliqué Nœud maître TaskTracker DataNode TaskTracker NameNode DataNode NameNode secondaire TaskTracker DataNode © Inovia Conseil Nœuds esclaves JobTracker
  120. 120. Hadoop Map/Reduce   Map : données sous forme clés/valeurs Reduce : fusion par clé pour former résultat fichier d’entrée découpage map tri reduce résultat http://blog.inovia-conseil.fr/?p=46
  121. 121. Hadoop Ecosystème Hadoop http://cloudstory.in/2012/04/introduction-to-big-data-hadoop-ecosystem-part-1/
  122. 122. Démonstration par l’exemple Big Search dans la vraie vie  Exemples d’entreprises utilisant différentes technologies pour différents scénarios BIIIIG Hadoop  Hadoop / Solr  MapReduce / Search  Solr 
  123. 123. Démonstration du big data par l’exemple Google   1 000 000 000 000 d’URLS uniques (2008) Pagerank : le ranking d’une page est estimé par sa popularité plutôt que par son contenu
  124. 124. Démonstration par l’exemple Google  Construire PageRank grâce à Map/reduce Web Google Map/Reduce (≠ Hadoop Mapreduce) : Calcul PageRank Moteur de recherche (≠ Lucene Solr)
  125. 125. Démonstration par l’exemple Linkedin
  126. 126. Démonstration par l’exemple 1er cas : Hadoop pur pour les recommandations Voldemort (Linkedin filesystem) Hadoop (pour le calcul) Web Server (pour l’affichage) Données brutes Calcul distribué des recommandations Injection des recommandations par utilisateur Lecture des données utilisateur et leur recommandations
  127. 127. Démonstration par l’exemple 2e cas : Lucene pur pour la recherche d’utilisateurs Voldemort (Linkedin filesystem) Lucene (pour le search) Web Server (pour l’affichage) Données brutes Indexation des utilisateurs Recherche d’utilisateurs Lecture des données utilisateur spécifique
  128. 128. Démonstration par l’exemple Zoosk
  129. 129. Démonstration par l’exemple Zoosk  Big Search avec Solr Recherche de profil  Flux d’actualités  Trouver un partenaire 
  130. 130. Démonstration par l’exemple Cloudera Search  Index Solr sur HDFS  Avantages de HDFS sur l’index • • Réplication Haute disponibilité
  131. 131. Démonstration par l’exemple Behemoth et Solr  Behemoth Projet Apache  Framework pour déployer des applications UIMA sur Hadoop 
  132. 132. Démonstration par l’exemple Behemoth et Solr  Behemoth et Solr  Ex: SolrCloud, Behemoth, Solr • • Extraction de contenu de documents PDF/Word sur Hadoop par Behemoth Envoi à Solr pour indexation (SolrCloud)
  133. 133. Plan      Big Search Solr/Constellio Hadoop Démonstration par l’exemple Démonstration Hadoop/Solr
  134. 134. Démonstration Hadoop/Solr Objectif  rechercher n’importe quel mot dans Solr et pouvoir trouver toutes les expressions de 2 mots contenant ce mot et de savoir de quelle œuvre cette expression provient (basé sur Lucid Imagination)
  135. 135. Démonstration Hadoop/Solr  Input Hadoop  2 livres de Jules Verne : Le Tour du Monde en 80 jours et De la Terre à la Lune
  136. 136. Démonstration Hadoop/Solr  Map/Reduce Mapper Découpage des phrases en un ensemble de 2 mots associé au livre Exemple d’un extrait de la Terre à la Lune : « Pendant la guerre fédérale » sera découpé comme ceci par le mapper : pendant la De la Terre à la Lune.txt la guerre De la Terre à la Lune.txt guerre fédérale De la Terre à la Lune.txt 
  137. 137. Démonstration Hadoop/Solr  Map/Reduce  Reducer Le reducer va se charger de grouper les expressions ayant plusieurs livres en commun. Pour l'expression « cet homme », le résultat du reducer sera : cet homme De la Terre à la Lune, Autour du Monde en 80 jours
  138. 138. Démonstration Hadoop/Solr  Solr  2 champs qui seront phrase et doc :
  139. 139. Démonstration Hadoop/Solr Etapes ‘De la Terre à la Lune’: ‘...on se conduit en héros, et, deux ans, trois ans plus tard…’ ‘De la Terre à la Lune’: ‘...on se conduit en héros, et, deux ans, trois ans plus tard…’ ‘Le tour du Monde en 80 jours’: ‘Mais, depuis deux ans, celui-ci n'habitait plus la Chine…’ ‘Le tour du Monde en 80 jours’: ‘Mais, depuis deux ans, celui-ci n'habitait plus la Chine…’ Fichiers d’entrée Découpage ‘deux ans’: ‘De la Terre à la Lune’ ‘ans trois’: ‘De la Terre à la Lune’ ‘deux ans’: ‘Le tour du Monde en 80 jours‘ ‘ans celui’: ‘Le tour du Monde en 80 jours’ map ‘deux ans’: ‘De la Terre à la Lune’, ‘Le tour du Monde en 80 jours‘ ‘ans trois’ : ‘De la Terre à la Lune’ ‘ans celui’ : ‘Le tour du Monde en 80 jours’ reduce ‘deux ans’: ‘De la Terre à la Lune’, ‘Le tour du Monde en 80 jours‘ ‘ans trois’: ‘De la Terre à la Lune’ ‘ans celui’: ‘Le tour du Monde en 80 jours’ résultat Solr Field: Phrase, indexed, stored ‘deux ans’ Solr Field: Doc, indexed, stored, multivalued ‘De la Terre à la Lune’, ‘Le tour du Monde en 80 jours‘ ‘ans trois’ ‘De la Terre à la Lune’ ‘ans celui’ ‘Le tour du Monde en 80 jours’ …. …. Index de Solr
  140. 140. France Labs Résumé  Expertise sur: Lucene  Solr  Constellio   Nouvelles technologies innovantes
  141. 141. Contacts Site web : www.francelabs.com Email : olivier.tavard@francelabs.com Twitter : Francelabs

×