Upload
francelabs
View
3.455
Download
4
Embed Size (px)
Citation preview
Lucene/Solr
Marseille JUG 28/11/13
Olivier TAVARD
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
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)
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
ArchitectureLa recherche est un oignon !
ArchitectureLa recherche est un oignon !
ArchitectureLa recherche est un oignon matriciel !
ArchitectureLucene
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)
LuceneDiffé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
Lucene
Un outil qui permet:
De créer un index à partir de documents
D’effectuer des recherches dans cet index
INDEX
LuceneIndex inversé
© http://untiluknow.blogspot.com
LuceneScoring
Lucene
Formule paramètrable Combinaison de
Boolean Model Vector Space Model
• Term Frequency• Inverse Document Frequency• …
Scoring
LuceneScoring
Term Frequency (TF) : Fréquence d’un Terme dans un document
France LabsBienvenue 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.
LuceneScoring
Inverse Document Frequency (IDF): Rareté du terme dans l’ensemble du corpus
Expertise LuceneSouhaitant 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.
Document
Lucene
FieldTerm
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 Gospodnetić • Description : Lucene is a gem in the open-source...• Content : … • …
Document
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
LuceneScoring
Boosts: A la requête:
• Boost sur certains champs• Boost sur certaines valeurs de la requête• Et d’autres cas…
LuceneScoring
LuceneScoring
Boosts: Boost sur le Titre
FonctionnalitésTitre : FonctionnalitésContent :Interface d'administration en HTML, Réplication, Mise en cacheRecherche 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 : HighlighterContent :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.
Lucene
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
Document Retournés
Documents Pertinents
Docs retournés et pertinents
Recherche pertinente
LuceneIndexation - Architecture
Apache Tika
© Lucene in Action, Second Edition
Lucene2 étapes
Query Parser
Analyzer ResultsParser
Index Writer
Analyzer
IndexTime
SearchTime
Index Searcher
LuceneAnalyzer
Analyzer Chaine de composants Extraction de termes du texte Normaliser les données A l'indexation/Requête WhiteSpace
Tokenizer
LowerCaseFilter
…
StopFilter
…
LuceneAnalyzer
Différents analyzers: Spécifique au langage
• Stemming, Stopwords… Analyzer phonétique Spécifique aux données
• Chemin• Nom du fichier• …
LuceneDifférents Analyzers
© Lucene introduction, Otis Gospodnetic
Lucene
Créées programmatiquement à partir d’une interface
Créées à partir d’une chaîne de caractères parsée par un “Query Parser”
type:voitures AND prix:[3000 TO 5000] Lucene Query
Lucene Query
Query Parser
Requêtes – Comment les créer
LuceneMatch
Coquilles SaintJacques
WordDelimiter
Coquilles Saint Jacques
Document Analysis
coquilles saint jacques
LowerCaseFilter
WhitespaceTokenizer
Coquilles SaintJacques
Coquilles saint-jacques
WordDelimiter
Coquilles saint jacques
Query Analysis
coquilles saint jacques
LowerCaseFilter
WhitespaceTokenizer
Coquilles saint-jacques
Match
LuceneSchema Global
© Lucene in Action, Second Edition
Lucene
"Simple" bibliothèque
Besoin d’une couche serveur et d’une UI
Pourquoi ce n’est pas suffisant?
Lucene
Lucene a été créé en: 1999, 2000, 2010 ? Lucene est une servlet? Marseille est la capitale de la ?
Quizz anti-sommeil
ArchitectureSolr
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)
Solr
APIs XML/HTTP de type REST Configuration par fichiers XML Mécanisme de Cache, Réplication Interface admin web
Solr
Interfaces HTTP pour : ajouter des documents (POST)
• http://localhost:8983/solr/update effectuer des recherches (GET)
• http://localhost:8983/solr/select
Interfaces
SolrArchitecture
© www,oblady,com
Installer SOLRInstaller 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
SolrFunctionnalités
Queries Phrase query Wildcard query Range query Proximity query Fuzzy query Boolean query
SolrFunctionnalités
Autocomplete
SolrFunctionnalités
Spellchecker
SolrFunctionnalités
Faceting
SolrFunctionnalités
Geospatial search
SolrFunctionnalités
More Like This Obtenir des documents similaires à un
document Similarité textuelle
Highlighting
Synonymes
SolrQuizz anti-sommeil I
Solr est un projet Apache, mais sous quelle licence ?
Que fait Solr par rapport à Lucene ?
Indexer des documentsIndexer 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
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
Indexer des documents
Indexer des documents
Mise à jour: Document en entier
Depuis Solr 4.0: Modifier la valeur d’un field
Indexer des documents
Construire son schéma
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
Schema.xml
Construire son schéma
Types des champs des documents à indexer Text, String, Date….
Liste des champs des documents Id, author, type….
Clé unique par document Manuel UUID
Schema.xml
Construire son schémaSchema.xml
Construire son schéma
Exemple de schéma simple : Voitures :
Schema.xml
Configurer SolrSolrConfig.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
Interroger Solr (queries)
URL : select http://localhost:8983/solr/select...
HTTP GET request Web browser Curl SolrJ …
Select
Interroger Solr
Recherche sur tout le contenu http://localhost:8983/solr/select?q=*:* *:* : recherche de tout sur tous les fields
1ère recherche
Interroger Solr
Accessible à cette URL : http://localhost:8983/solr/admin Complètement redesignée pour Solr 4
=>
UI Admin
Interroger SolrUI Admin
Interroger SolrUI Admin
Interroger Solr1ère recherche
Démo !
Interroger Solr
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
Structure de l’URL
SolrJ
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
Définition
SolrJ
Simple à utiliser : Création d'un SolrServer Envoi de SolrQuery Réception de SolrResponse
Définition
SolrJ
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)
Communication avec le Solr server
SolrJ
Exemple : Communication avec le serveur Solr en HTTP Indexation de documents Interrogation de Solr Affichage des réponses
Exemple complet
SolrJ
Communication avec Solr en HTTPString serverUrl = "http://localhost:8983/solr/collection1";HttpSolrServer server = new HttpSolrServer(serverUrl);
Exemple complet
SolrJ
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);
Exemple complet
SolrJ
RequêteSolrQuery query = new SolrQuery();query.setQuery("*:*"); query.setStart(0);query.setRows(10);
Exemple complet
SolrJ
RéponseQueryResponse 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"));}
Exemple complet
SolrJ
RéponseOn obtient dans la console :INFO: Creating new http client, config:maxConnections=128&maxConnectionsPerHost=32&followRedirects=falseid : 1 text : hello SolrJid : 2 text : coucou
Exemple complet
Solr
SolrJ est le 2eme nom de DJ McSolaar ?
Solr permet d’analyser graphiquement les statistiques d’usages?
Solr tourne sous Tomcat ou sous Jetty ?
Quizz anti-sommeil III
SolrPerformances
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é
Scalability
Maître
Indexing
Master
Requêtes
Replicate
Slave
Requêtes
Slave
Load Balancer
Queries
Replication
ScalabilityDistributed Search
Shard3
Queries
Shard1 Shard2
Aggregatedresults
Subquery
Solr CloudSolr 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
Solr CloudZookeeper
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
Solr Cloud1 collection - 2 shards
Solr Cloud1 collection - 2 shards
Première instance avec Zookeeper embarqué:
Deuxième instance:
Visualisation:
Solr Cloud1 collection - 2 shards
Solr Cloud1 collection - 2 shards – 2 replicas
Solr Cloud1 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
Solr Cloud1 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
Solr CloudIndexation
On utilise un CloudSolrServer en SolrJ Pointé sur Zookeeper
• Transfert au shard concerné • Indexation des docs sur le shard et ses replicas
Solr CloudIndexation
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é
Solr CloudRecherche
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
ScalabilitySolr Cloud
Solr Cloud
Solr CloudAvantages
Architecture très flexible En cas d’augmentation de charge
• Ajout de machines qui pointent sur Zookeeper En cas de diminution de charge
• Eteindre des machines Zookeeper
Gestion centralisée des configurations Visualisation du statut des shards
Solr CloudAvantages
Réplication Automatique et fiable
Distribution automatique des MAJs Distribution automatique des recherches
Solr CloudDésavantages
Indexation plus lente Transmissions des docs entre shards
Nouvel environnement Certaines fonctionnalités non implémentées Susceptible d’évoluer
Connecteurs et écosystème Solr
Marseille JUG 28/11/13
Olivier TAVARD
Se connecter à un système externe Crawler les données Autorisations des données
crawlées Early Binding Late Binding
CrawlerRole
Mode push ou pull Extraire le contenu Crawling normal ou delta Minimiser l'impact sur le système
crawlé Charge Programmation heure
CrawlerRole
CrawlerCrawlers
Beaucoup de Crawlers open source Aperture
• File, Web Nutch
• File DIH
• DB, XML Et des Framework
Google Enterprise Connector Apache Manifold CF
DIH
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)
Définition
DIH
DIH : Data Import handler Interface d'administration :
http://localhost:8983/solr/#/collection1/dataimport
Définition
SolrCell
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
Définition
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
Content ExtractingApache Tika
Google Connector Manager Créé par Google pour le Google Search
Appliance Google Connector Manager et
connectors en license Apache V.2 Pas créé pour Solr
Intégré par Constellio Late et early binding Delta crawling
CrawlerGoogle Connector Manager
CrawlerGoogle Connector Manager
Connectors : File Share DB EDM (Alfresco, Nuxeo) Email XML
CrawlerManifold 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)
CrawlerManifold CF
Delta Crawling Authorization service IHM et API de configuration Pensé pour Solr Architecture de plugins
Connecteurs disponibles : Content Repositories:
• SharePoint, Documentum, Windows Share…• CMIS (Alfresco), DB, RSS, Wiki
Authorities:• AD• LDAP
Indexes:• Solr• Elastic Search• …
CrawlerManifold CF
Manifold CF
Windows Share
Sharepoint
Repository N
…
AD
OpenLDAP
Authority N
…
Solr
Manifold CF pull Agent
Conn. 1
Conn. 2
Conn. N
Manifold CF authority service
Conn. 1
Conn. 1
Conn. N
Extracting Handler
MCF Search Plugin
Docs andaccess tokens
Get User access token
Repositories Authorities
CrawlerManifold CF
Ajaxfrancelabs: Ajax framework
Inspiré par AjaxSolr Côté client Javascript + ajax Fournit un ensemble de widgets préconfigurés Possibilité d’étendre les widgets
Pour Solr et Constellio
Ajaxfrancelabs: Ajax framework
ManifoldCF, FrancellioDémo !
Démo !
Hadoop
Créé par Doug Cutting Framework open source Inspiré par les papiers sur Google Map Reduce
et Google File System
Vue d’ensemble
Hadoop
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
Avantages
Problématiques adressées
Framework open source pour écrire et exécuter des applications distribuées qui traitent de très larges volumes de données : AccessibleHadoop fonctionne sur de très larges clusters ou sur le cloud comme avec Amazon EC2 RobusteHadoop est architecturé de telle façon que les pannes matérielles peuvent arriver et peut les gérer
Définition
Problématiques adressées
Mise à l'échelleMise à l'échelle linéaire pour gérer de larges volumes de données en ajoutant des nodes supplémentaires au cluster SimpleHadoop permet d'écrire facilement du code
Définition
Architecture de Hadoop
Architecture logique Storage layer Execution layer
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
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
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"
Architecture de Hadoop
Scalable :• Couches de stockage et d'excéution sont sur plusieurs
nodes (serveurs)
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
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
Architecture de Hadoop
Simple:• Réduit la complexité• Système d'exploitation conceptuel qui gère plusieurs
CPU et disques
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
Hadoop
Données converties en blocs et distribuées sur des nœuds
Chaque bloc est répliqué
HDFS
JobTracker
NameNode
NameNode secondaire
TaskTracker
DataNode
TaskTracker
DataNode
TaskTracker
DataNode
Nœud maître
Nœ
uds esclaves
© Inovia Conseil
Hadoop
Map : données sous forme clés/valeurs Reduce : fusion par clé pour former résultat
Map/Reduce
http://blog.inovia-conseil.fr/?p=46
fichier d’entrée découpage map tri reduce résultat
HadoopEcosystème Hadoop
http://cloudstory.in/2012/04/introduction-to-big-data-hadoop-ecosystem-part-1/
Démonstration par l’exemple
Exemples d’entreprises utilisant différentes technologies pour différents scénarios BIIIIG Hadoop Hadoop / Solr MapReduce / Search Solr
Big Search dans la vraie vie
Démonstration du big data par l’exemple
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
Démonstration par l’exemple
Construire PageRank grâce à Map/reduce
Web
Google Map/Reduce (≠ Hadoop
Mapreduce) :Calcul PageRank
Moteur de recherche (≠ Lucene Solr)
Démonstration par l’exempleLinkedin
Démonstration par l’exemple1er cas : Hadoop pur pour les recommandations
Hadoop (pour le calcul)
Voldemort (Linkedin
filesystem)
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
Démonstration par l’exemple2e cas : Lucene pur pour la recherche d’utilisateurs
Lucene (pour le search)
Voldemort (Linkedin
filesystem)
Web Server (pour l’affichage)
Données brutes
Indexation des utilisateurs
Recherche d’utilisateurs
Lecture des données utilisateur spécifique
Démonstration par l’exempleZoosk
Démonstration par l’exemple
Big Search avec Solr Recherche de profil Flux d’actualités Trouver un partenaire
Zoosk
Démonstration par l’exemple
Index Solr sur HDFS Avantages de HDFS sur l’index
• Réplication• Haute disponibilité
Cloudera Search
Démonstration par l’exemple
Behemoth Projet Apache Framework pour déployer des applications UIMA
sur Hadoop
Behemoth et Solr
Démonstration par l’exemple
Behemoth et Solr Ex: SolrCloud, Behemoth, Solr
• Extraction de contenu de documents PDF/Word sur Hadoop par Behemoth
• Envoi à Solr pour indexation (SolrCloud)
Behemoth et Solr
Plan
Big Search Solr/Constellio Hadoop Démonstration par l’exemple Démonstration Hadoop/Solr
Démonstration Hadoop/Solr
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)
Objectif
Démonstration Hadoop/Solr
Input Hadoop 2 livres de Jules Verne : Le Tour du Monde en 80
jours et De la Terre à la Lune
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.txtla guerre De la Terre à la Lune.txtguerre fédérale De la Terre à la Lune.txt
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
Démonstration Hadoop/Solr
Solr 2 champs qui seront phrase et doc :
Démonstration Hadoop/SolrEtapes
‘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…’
‘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…’
‘deux ans’: ‘De la Terre à la Lune’
‘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’
‘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’
‘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’
Solr Field: Phrase,
indexed, stored
‘deux ans’
‘ans trois’
‘ans celui’
….
Solr Field: Doc, indexed, stored,
multivalued
‘De la Terre à la Lune’, ‘Le tour du Monde en
80 jours‘
‘De la Terre à la Lune’
‘Le tour du Monde en 80
jours’
….
Fichiers d’entrée Découpage map reduce résultat Index de Solr
France LabsRésumé
Expertise sur: Lucene Solr Constellio
Nouvelles technologies innovantes