Marseille JUG Novembre 2013 Lucene Solr France Labs

  • 1,107 views
Uploaded on

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

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

More in: Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,107
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
17
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Lucene/Solr Marseille JUG 28/11/13 Olivier TAVARD
  • 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. 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. 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. Architecture La recherche est un oignon !
  • 6. Architecture La recherche est un oignon !
  • 7. Architecture La recherche est un oignon matriciel !
  • 8. Architecture Lucene
  • 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. 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. Lucene  Un outil qui permet: De créer un index à partir de documents  D’effectuer des recherches dans cet index  INDEX
  • 12. Lucene Index inversé © http://untiluknow.blogspot.com
  • 13. Lucene Scoring
  • 14. Lucene Scoring   Formule paramètrable Combinaison de Boolean Model  Vector Space Model  • • • Term Frequency Inverse Document Frequency …
  • 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. 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. 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. 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. Lucene Scoring  Boosts:  A la requête: • • • Boost sur certains champs Boost sur certaines valeurs de la requête Et d’autres cas…
  • 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. 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. Lucene Indexation - Architecture Apache Tika © Lucene in Action, Second Edition
  • 23. Lucene 2 étapes Query Parser Parser Analyzer Analyzer Index Writer Results Index Searcher
  • 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. Lucene Analyzer Différents analyzers:  Spécifique au langage • Stemming, Stopwords… Analyzer phonétique  Spécifique aux données  • • • Chemin Nom du fichier …
  • 26. Lucene Différents Analyzers © Lucene introduction, Otis Gospodnetic
  • 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. 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. Lucene Schema Global © Lucene in Action, Second Edition
  • 30. Lucene Pourquoi ce n’est pas suffisant?  "Simple" bibliothèque  Besoin d’une couche serveur et d’une UI
  • 31. Lucene Quizz anti-sommeil    Lucene a été créé en: 1999, 2000, 2010 ? Lucene est une servlet? Marseille est la capitale de la ?
  • 32. Architecture Solr
  • 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. Solr     APIs XML/HTTP de type REST Configuration par fichiers XML Mécanisme de Cache, Réplication Interface admin web
  • 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. Solr Architecture © www,oblady,com
  • 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. Solr Functionnalités  Queries       Phrase query Wildcard query Range query Proximity query Fuzzy query Boolean query
  • 39. Solr Functionnalités  Autocomplete
  • 40. Solr Functionnalités  Spellchecker
  • 41. Solr Functionnalités  Faceting
  • 42. Solr Functionnalités  Geospatial search
  • 43. Solr Functionnalités  More Like This Obtenir des documents similaires à un document  Similarité textuelle   Highlighting  Synonymes
  • 44. Solr Quizz anti-sommeil I  Solr est un projet Apache, mais sous quelle licence ?  Que fait Solr par rapport à Lucene ?
  • 45. Indexer des documents Indexer des documents
  • 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. 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. Indexer des documents Indexer des documents  Mise à jour:   Document en entier Depuis Solr 4.0:  Modifier la valeur d’un field
  • 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. 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. Construire son schéma Schema.xml
  • 52. Construire son schéma Schema.xml  Exemple de schéma simple :  Voitures :
  • 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. Interroger Solr (queries) Select  URL : select   http://localhost:8983/solr/select... HTTP GET request Web browser  Curl  SolrJ  … 
  • 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. Interroger Solr UI Admin  Accessible à cette URL : http://localhost:8983/solr/admin  Complètement redesignée pour Solr 4  =>
  • 57. Interroger Solr UI Admin
  • 58. Interroger Solr UI Admin
  • 59. Interroger Solr 1ère recherche Démo !
  • 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. 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. SolrJ Définition  Simple à utiliser : Création d'un SolrServer  Envoi de SolrQuery  Réception de SolrResponse 
  • 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. SolrJ Exemple complet  Exemple : Communication avec le serveur Solr en HTTP  Indexation de documents  Interrogation de Solr  Affichage des réponses 
  • 65. SolrJ Exemple complet  Communication avec Solr en HTTP String serverUrl = "http://localhost:8983/solr/collection1"; HttpSolrServer server = new HttpSolrServer(serverUrl);
  • 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. SolrJ Exemple complet  Requête SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.setStart(0); query.setRows(10);
  • 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. 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. 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. 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. Scalability Replication Indexing Master Maître Replicate Slave Slave Load Requêtes Balancer Requêtes Queries
  • 73. Scalability Distributed Search Subquery Shard1 Queries Aggregated results Shard2 Shard3
  • 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. 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. Solr Cloud 1 collection - 2 shards
  • 77. Solr Cloud 1 collection - 2 shards  Première instance avec Zookeeper embarqué:  Deuxième instance:  Visualisation:
  • 78. Solr Cloud 1 collection - 2 shards
  • 79. Solr Cloud 1 collection - 2 shards – 2 replicas
  • 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. 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. 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. 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. 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. Scalability Solr Cloud  Solr Cloud
  • 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. Solr Cloud Avantages  Réplication    Automatique et fiable Distribution automatique des MAJs Distribution automatique des recherches
  • 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. Connecteurs et écosystème Solr Marseille JUG 28/11/13 Olivier TAVARD
  • 90. Crawler Role    Se connecter à un système externe Crawler les données Autorisations des données crawlées Early Binding  Late Binding 
  • 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. 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. 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. DIH Définition  DIH : Data Import handler  Interface d'administration : http://localhost:8983/solr/#/collection1/dataimport
  • 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. 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. 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. Crawler Google Connector Manager  Connectors :      File Share DB EDM (Alfresco, Nuxeo) Email XML
  • 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. Crawler Manifold CF      Delta Crawling Authorization service IHM et API de configuration Pensé pour Solr Architecture de plugins
  • 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. 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. 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. Ajaxfrancelabs: Ajax framework
  • 105. ManifoldCF, Francellio Démo ! Démo !
  • 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. 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. 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. 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. Architecture de Hadoop  Architecture logique Storage layer  Execution layer 
  • 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. 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. 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. Architecture de Hadoop  Scalable : • Couches de stockage et d'excéution sont sur plusieurs nodes (serveurs)
  • 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. 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. Architecture de Hadoop  Simple: • • Réduit la complexité Système d'exploitation conceptuel qui gère plusieurs CPU et disques
  • 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. 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. 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. Hadoop Ecosystème Hadoop http://cloudstory.in/2012/04/introduction-to-big-data-hadoop-ecosystem-part-1/
  • 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. 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. 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. Démonstration par l’exemple Linkedin
  • 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. 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. Démonstration par l’exemple Zoosk
  • 129. Démonstration par l’exemple Zoosk  Big Search avec Solr Recherche de profil  Flux d’actualités  Trouver un partenaire 
  • 130. Démonstration par l’exemple Cloudera Search  Index Solr sur HDFS  Avantages de HDFS sur l’index • • Réplication Haute disponibilité
  • 131. Démonstration par l’exemple Behemoth et Solr  Behemoth Projet Apache  Framework pour déployer des applications UIMA sur Hadoop 
  • 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. Plan      Big Search Solr/Constellio Hadoop Démonstration par l’exemple Démonstration Hadoop/Solr
  • 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. 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. 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. 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. Démonstration Hadoop/Solr  Solr  2 champs qui seront phrase et doc :
  • 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. France Labs Résumé  Expertise sur: Lucene  Solr  Constellio   Nouvelles technologies innovantes
  • 141. Contacts Site web : www.francelabs.com Email : olivier.tavard@francelabs.com Twitter : Francelabs