SlideShare ist ein Scribd-Unternehmen logo
1 von 143
Downloaden Sie, um offline zu lesen
Apache Solr
Nantes JUG
Aurélien MAZOYER
Olivier TAVARD
16/02/15
Introduction
A propos :
 Cofondateur de la société France Labs
 Développeur (principalement Java)
 Formateur Solr
A propos de France Labs :
 Startup créée en 2011
 Partenaire officiel de LucidWorks pour la France
Introduction
Domaine:
 Moteurs de recherche d'entreprise Open Source
2 activités:
 Consulting/support/formation sur
Lucene/Solr/ElastiSearch/LucidWorks/Datafari
 R&D (algorithmes de ranking, connecteurs, réseaux
sociaux)
Pourquoi 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 Big Data
 Utilisé par Twitter, Linkedin, eBay, Salesforce, IBM, Apple
Présentation de Solr
 Architecture SOLR
 Scoring
 Indexation
 Requêtage
 Fonctionnalités
 Solr Cloud
Solr et son écosystème
Présentation de Solr
 Architecture SOLR
 Scoring
 Indexation
 Requêtage
 Fonctionnalités
 Solr Cloud
Solr et son écosystème
La recherche est un oignon!
La recherche est un oignon!
La recherche est un oignon matriciel!
Lucene
Lucene
Créé en 2000 par Doug Cutting. Version Actuelle :
Lucene v. 4.10.3 Décembre 2014)
Projet Open Source, Apache depuis 2001
Librairie de recherche “full-text”
Rapide, stable, performant, modulable
100% Java (pas de dépendances)
Lucene
Un outil qui permet:
 De créer un index à partir de
documents
INDEX
Index
Document
FieldTerm
Document, fields, terms
 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 : …
• …
Lucene
Un outil qui permet:
 De créer un index à partir de
documents
 D’effectuer des recherches
dans cet index
INDEX
Lucene
Différence avec une base de données :
 Optimisé 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
Indexation - Architecture
Crawler
Lucene
analyzer
Indexer
INDEX
Lucene
Requêtage - Architecture
Query
Parser
Lucene
analyzer
Index
Searcher
type:voitures AND prix:[3000 TO 5000]
INDEX
Analyzer
Index
coquilles
saint
Jacques
….
Document Requête
coquilles saint jacques
Coquilles saint-jacques
coquilles saint jacques
Coquilles SaintJacques
Lucene
analyzer
Lucene
analyzer
Indexation Requête
Match!
Lucene est une simple bibliothèque
Besoin d’une couche serveur…
Lucene
Solr
Solr par rapport à Lucene
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 : Solr 4.10.3 (Décembre 2014)
Solr par rapport à Lucene
APIs XML/HTTP de type REST
Configuration par fichiers XML
Mécanisme de Cache, Réplication
Interface admin web
Solr par rapport à Lucene
Interfaces HTTP pour :
 ajouter des documents (POST)
• http://localhost:8983/solr/update
 effectuer des recherches (GET)
• http://localhost:8983/solr/select
© www,oblady,com
Intéraction Solr / Monde extérieur
Solr
Update Handler Search Handler
Lucene
© www,oblady,com
Architecture
(Virtual) Machine
OS
Java Virtual Machine
Conteneur de servlet (Jetty, Tomcat)
Solr faceting, replication, caching, distributed search,
admin, Lucene best practices
Lucene Java
core search, analysis tools, hit highlighting,
spell checking
Surcouche
Surcouche
Besoin (parfois) d’une surcouche:
 Interface WEB pour le client
 Crawl des documents sur les différents systèmes
 Gestion de la sécurité
 Statistiques
Exemples de solutions « clé en main » :
 Constellio
 LucidWorks
 Datafari
Des questions???
Présentation de Solr
 Architecture SOLR
 Scoring
 Indexation
 Requêtage
 Fonctionnalités
 Solr Cloud
Solr et son écosystème
Scoring
Récupérer les bons résultats…
… et seulement ceux là
Precision
 Pourcentage de docs pertinents sur les
docs retournés
Matchs corrects/total retourné
Recall
 Pourcentage de docs pertinents
retournés sur le total des docs pertinents
 Matches corrects/(matchs
corrects+matchs manqués)
 Trouver un bon compromis…
Documents
Pertinents
Document
Retournés
Documents
Pertinents
Docs retournés
et pertinents
Recherche pertinente
Scoring en Lucene
Formule paramètrable
Combinaison de
 Boolean Model (Match)
 Vector Space Model (Scoring)
• Term Frequency
• Inverse Document Frequency…
 Boosts…
TF-IDF
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.
TF-IDF
Inverse Document Frequency (IDF):
 Rareté du terme dans l’ensemble de l’index
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.
TF-IDF
Norms :
 Taille des champs
Solr
Titre : Les moteurs de recherche
Content :
Apache Solr est une librairie de
recherche full text en open source.
Elle propose des API REST, des
mécanismes de cache, réplication et
mise à l’échelle.
Titre : Encyclopédie
Content :
Solr est une moteur de recherche
open source. Elastic Search est un
moteur de recherche open source
(mais quand même un peu moins
bien)
….
….
…. Le chat est une animal de
compagnie avec des oreilles.
Boosts:
 Privilégier un doc en particulier…
 Privilégier un champ par rapport à un autre…
 Privilégier les phrases exactes…
 Privilégier les docs qui matchent une requête…
 Privilégier les docs par rapport au résultat d’une fonction …
 Privilégier les docs géolocalisés les plus proches….
Boosts
Boosts
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.
Scoring en Lucene
Des questions???
Présentation de Solr
 Architecture SOLR
 Scoring
 Indexation
 Requêtage
 Fonctionnalités
 Solr Cloud
Solr et son écosystème
Le crawling de documents n’est PAS
le job de Solr
Mais il existe de nombreux outils
pour cela :
 DIH
 Nutch
 Aperture
 Manifold CF
 Google Connectors
Crawling
Préparer les documents
 Convertir en XML, JSON, CSV (ou document riche avec Tika)
 Peut contenir plusieurs Docs
Indexation
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
Indexation
Avec des clients spécifiques:
 SolrJ
• Client le plus évolué
 SolrNet
 rsolr
 SolPython
 SolPerl
 Solarium
 scalikesolr
 …
Clients
Documents visibles une fois commités
Possibilité d’utiliser le « soft-commit »
Pour avoir du NRT
Latence d’indexation
Pour la configuration de Solr
Pour la configuration de Solr
(Presque) tout se passe dans 2 fichiers:
 Schema.xml
• Décrit les données à indexer
 SolrConfig.xml
• Comportement interne du serveur et
interactions avec le monde extérieur
Schema
Déclaration des champs fixes:
Ou dynamiques:
Schema
Et des types de champs:
 Entier
 Date
 String
• Un seul morceau
 Text
• Text découpé et normalisé
• Avec un analyzer spécifique
Analyzer
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
Schema : Analyzer
Analyzers
Beaucoup d’analyzers prédéfinis
 Spécifiques au langage
Mais modulables : beaucoup de
composants disponibles :
 Ajout de synonymes
 Stemming
• manger, mangera => mang
 Phonétique
 …
Des questions???
Présentation de Solr
 Architecture SOLR
 Scoring
 Indexation
 Requêtage
 Fonctionnalités
 Solr Cloud
Solr et son écosystème
Première requête
URL :
 http://localhost:8983/solr/collection1/select...
HTTP GET request
 Web browser
 Curl
 SolrJ
 …
Structure de la requête
http://localhost:8983/solr/collection1/select
?q=*:*&start=0&rows=10&fl=description
 /solr/ : contexte de l’application web où Solr est installé
 /collection1: Collection (ou index) de Solr
 select : request handler
 Après le ? => paramètres non ordonnés
Exemple de retour
Type de requêtes
Type But Exemple
TermQuery
Simple terme
Peut être spécifique à un
champ
Tarte
Type:Dessert
PhraseQuery
Match de plusieurs
termes dans l’ordre
« tarte aux pommes"
RangeQuery Fourchette
[A TO Z]
{A TO Z}
WildcardQuery Lettres manquantes
j*v?
f??bar
PrefixQuery
Tous les termes qui
commencent par X.
cheese*
FuzzyQuery Distance de Levenshtein manger~
BooleanQuery
Agrégation de plusieurs
queries
manger AND
cheese* -cheesecake
Requêtage
L’utilisateur peut donc faire des requêtes
complexes :
Requêtage
Mais fera plutôt des requêtes de ce type:
A nous de faire avec… 
Présentation de Solr
 Architecture SOLR
 Scoring
 Indexation
 Requêtage
 Fonctionnalités
 Solr Cloud
Solr et son écosystème
Spellchecker
Autocomplete
Facettes
Facettes
Géolocalisation
Autres fonctionnalités
More Like This
 Obtenir des documents similaires à un
document
 Similarité textuelle
Highlighting
Fonctionnalité
Joining
 Possibilité de faire une jointure sur plusieurs
indexes (clé primaire -> clé secondaire)
 Mais à éviter
 Préférer la dénormalisation
Aplatir les données
 Dénormalisation
 Données redondantes
 Recherche rapide sur un seul index (pas de join)
Et les vôtres…
Solr est très orienté plugin
Possibilité de surcharger quasiment tout…
Configuration de Solr
Pour la configuration de Solr
(Presque) tout se passe dans 2 fichiers:
 Schema.xml
• Décrit les données à indexer
 SolrConfig.xml
• Comportement interne du serveur et
interaction avec le monde extérieur
Exemple:
Solrconfig.xml permet le paramètrage :
 Request Handler
 Composants associés (autocomplete, highlighting)
 Caches, Fréquences de commits etc…
 Bref, presque tout le reste…
Des questions???
Demo
Démo !
Présentation de Solr
 Architecture SOLR
 Scoring
 Indexation
 Requêtage
 Fonctionnalités
 Solr Cloud
Solr et son écosystème
Solr Cloud
Nouvelle architecture de Solr pour gérer la scalabilité
Nouveau système de mise à l’échelle de Solr
 Pack 2 en 1
• Distribution
- Volumétrie élevée
• Réplication
- Répartition de la charge
- Haute dispo
Architecture flexible
Zookeeper
Logiciel de gestion de configurations pour
système distribués
Contient les configs des indexs de Solr
Cloud
Les Solr s’enregistrent et se désenregistrent
auprès du Zookeeper
Statuts des shards enregistrés
Nouvelles notions
Sharding
 Un Shard est un morceau d’index
 Une recherche distribuée se fait sur tous les shards (ie sur
tout l’index)
 Utile pour gérer une grosse volumétrie de documents
Shard3
Requêtes
Shard1 Shard2
Résultats
Aggrégés
Sous-Requêtes
Nouvelles notions
Leader et Replica pour la réplication
 On n’a pas de maître/esclave mais des leader/replica
• Un replica peut devenir leader si son leader tombe
 Le leader et le replica contiennent le même shard
 Utile pour répartir la charge/assurer une haute dispo
Leader
Shard 1
Replica 2
Shard 2
Replica 1
Shard 1
Load Balancer
Requêtes Requêtes Requêtes
1 index- 2 shards – 2 replicas
Un exemple!
On veut un index, réparti sur 2 shards
(ie : coupé en 2)
Chaque shard sera répliqué 1 fois
Donc 4 machines
INDEX
On démarre la première machine, envoie la
configuration et spécifie le nombre de shards voulus
Solr Cloud
Zookeeper
ConfigIndex1
Leader Shard1
On démarre la deuxième machine, sans lui spécifier
de configuration mais en pointant sur le Zookeeper
Solr Cloud
Zookeeper
Leader Shard2Leader Shard1
On démarre la 3ème machine, sans lui spécifier de
configuration mais en pointant sur le Zookeeper
Solr Cloud
Zookeeper
Leader Shard2
Replica Shard1
Leader Shard1
Replica Shard1
On démarre la 4ème machine, sans lui spécifier de
configuration mais en pointant sur le Zookeeper
Solr Cloud
Zookeeper
Leader Shard2
Replica Shard2
Leader Shard1
Indexation
Distribution automatique des updates
Comment?
On envoie les docs à n’importe quelle machine
 Solr se charge de les transmettre à la bonne machine
Leader 1 Leader 2
Replica 1 Replica 2
Solr Cloud
Indexer
Recherche
Distribution des recherches automatiques
Hors SolrJ :
 On registre les shards dans le load balancer
Avec SolrJ :
 On utilise un objet CloudSolrServer
• Pointé sur Zookeeper
• Gère le load balancing
Leader 1 Leader 2
Replica 1 Replica 2
Solr Cloud
Search
Search
Avantages
Architecture très flexible
 En cas d’augmentation de charge
• Ajout de machines qui pointent sur Zookeeper
• Si pas de client intelligent
- Enregistrement des machines dans le Load Balancer
 En cas de diminution de charge
• Eteindre des machines
Zookeeper
 Gestion centralisée des configurations
 Visualisation du statut des shards
Des questions???
Demo
Démo !
Avantages
Réplication
 Automatique et fiable
Support du NRT
Distribution automatique des MAJs
Distribution automatique des recherches
Solr 5
Sortie imminente
Plus un WAR mais une application
Nouvelles fonctionnalités :
 IDF distribué
 Stats component amélioré
Solr 4 : apport de SolrCloud
Solr 5 : maturité, simplification à l’usage
Presentation Lucene / Solr / Datafari - Nantes JUG
Présentation de Solr
Solr et son écosystème
 Crawling des données
 Exemple de UI
 Outils sémantiques
 Hadoop
Présentation de Solr
Solr et son écosystème
 Crawling des données
 Exemple de UI
 Outils sémantiques
 Hadoop
Solr ne crawle PAS les données
Besoin d’un crawler pour :
 Connexion au système externe à crawler
 Récupération des données
 Gestions des autorisations
Role
Mode Push ou Pull
Crawling normal ou incrémental
Réglage de l’impact sur le système
crawlé
 Throttling
 Scheduling
En cas de documents riches (Pdf, Word):
 Extraction du contenu
Role
Apache Tika
Contribution de Solr
 Détection du Mime-type
 Embarque des librairies pour:
• Lire le contenu
• Extraire les meta-données
 Extension supportés:
• XHTML
• MS Office (OLE2 and OOXML)
• OpenDocument
• PDF
• RTF
• Zip
• Audio/Video/Image files
Extraction de contenu
Les crawlers
Differents Crawlers
 Nutch
• Crawler web distribué
 DIH
• Contrib de Solr
• Crawl DB, XML
 Aperture
• File, Web
Et Framework
 Google Enterprise Connector
 Manifold CF
Manifold CF
Basé sur « Connector Framework » développé par
Karl Wright pour la MetaCarta Appliance
Donné à l’Apache Software Foundation en 2009
(première version 2011)
Mai 2012 : sortie d’incubation
Version actuelle 1.8.1 (Février 2015)
Manifold CF
Crawling incrémental
Gère les autorisations
Configuration par UI et API
Créé pour Solr
Architecture en mode plugin
Differents connecteurs pour :
 Content Repositories :
• SharePoint
• Windows Share
• CMIS (Alfresco)
• DB
• RSS
• Wiki
 Authorities:
• AD
• LDAP
 Output repositories :
• Solr
• Elastic Search
Manifold CF
2 composants principaux:
 Pull agent:
• Contient les connecteurs (repository et output connectors)
• Récupère les données à partir des différents repositories
• Et les push avec leurs ACLs aux output connectors
Manifold CF
Pull Agent
2 composants principaux:
 Authority service:
• Contient les authority connectors
• Liste de tous les tokens pour l’utilisateur courant
Manifold CF
Intégration avec Solr
 Exemple : crawl de fichiers avec autorisation
• Environnement :
- File Share Windows
- Active Directory
• Indexer les fichiers et respecter les droits à la requête
Manifold CF
Configuration côté Manifold CF
 Configuration du connecteur Samba
 Configuration du connecteur AD
 Configuration du connecteur Solr
Manifold CF
Modification du schéma Solr
 Ajout de champs pour indexer les ACLs
• AllowFile, DenyFile, AllowDirectory, DenyDirectory…
 Ajout d’un plugin à Solr (MCF Search Plugin) pour interroger Manifold CF pour
obtenir les infos d’utilisateur
Manifold CF
Manifold CF
AD
Manifold CF
pull Agent
Connecteur
JCIFS
Connecteur
Solr
Docs and
access tokens
Get User
access token
Repositories Authorities
Manifold CF
OutputSolr
MCF
Search
Plugin
Indexation
Manifold CF
authority
service
Connecteur
AD
Windows
Share
Manifold CF
AD
Manifold CF
pull Agent
Connecteur
JCIFS
Connecteur
Solr
Docs and
access tokens
Get User
access token
Repositories Authorities
Manifold CF
Output
Windows
Share
Solr
MCF
Search
Plugin
Requête
Manifold CF
authority
service
Connecteur
AD
Front End Search authentifié
Filtre les docs suivant
leurs ACLs et les infos
d’utilisateurRésultats autorisés
Des questions???
Présentation de Solr
Solr et son écosystème
 Crawling des données
 Exemple de UI
 Outils sémantiques
 Hadoop
AjaxFranceLabs
Inspiré de AjaxSolr
Client Javascript/Ajax
Fournit plusieurs composants:
 Un Manager
• Gère la connexion avec le serveur
 Et des widgets
• Composant graphique et logique
AjaxFranceLabs
Manager
SearchBarWidget
ResultWidget
FacetWidget
Demo
Démo Datafari !
www.datafari.com
Présentation de Solr
Solr et son écosystème
 Crawling des données
 Exemple de UI
 Outils sémantiques
 Hadoop
Le sémantique n‘est pas le travail de Solr
Fait seulement de la recherche full-text (mais
le fait bien )
Solr
 Il existe des plugins pour cela
• UIMA
• GATE
• OpenNLP
Sémantique
Sémantique
UIMA (Unstructured Information Management Architecture)
 Framework Apache
 Plugin Solr
 Côté indexation
 Contient un pipeline d’Annotators
• Open Calais
• AlchemyAPI
• OpenNLP
• …
 Chaque annotator va rajouter des métadonnées au document
UIMA
Ex : OpenNLP
 Part of speech
• Verbe nom…
 Extraction d’entités
• Lieu
• Personne
Présentation de Solr
Solr et son écosystème
 Crawling des données
 Exemple de UI
 Outils sémantiques
 Analytics
 Hadoop
LogStash for Solr + Solr + Banana
Banana
Présentation de Solr
Solr et son écosystème
 Crawling des données
 Exemple de UI
 Outils sémantiques
 Hadoop
Hadoop
Créé par Doug Cutting
Framework open source
Inspiré par les papiers sur Google Map Reduce
et Google File System
Hadoop
1999
2002
2004
2010
2005
Hadoop
Scénarios Big Data
 Text mining
 Création et analyse de graphes
 Reconnaissance de patterns
 Moteurs de recommandations, ciblage publicité
 Analyse de menaces, surveillances de marchés
Hadoop
Traiter des grands volumes de données en un
minimum de temps
Stocker des immenses volumes de données
Fonctionne sur machines de configuration faible et
peu coûteuses
Hadoop
Architecture (très) simplifiée de Hadoop
Nœud 1 Nœud 3Nœud 2 Nœud 4
Couche Traitement (Map Reduce)
Couche Stockage (HDFS)
Hadoop
Couche stockage (HDFS)
 Système de fichier distribué
 Utilise les disques « normaux » de chacun
des nœuds…
…pour donner l’impression de n’utiliser
qu’un seul énorme disque
 Fiable (données répliquées 3 fois)
Hadoop
Couche traitement (Map Reduce)
 Hadoop exécute des jobs Map Reduce
 Notre algo doit donc implémenter:
• Un mapper
• Un reducer
 Pour être executé de manière distribuée par
Hadoop en tant que job
Clé1 : Val1
Clé2 : Val2
Clé3 : Val3
Clé4 : Val4
Hadoop
Mapper
 Prend des données en entrée
 Et les transforme en paire de clé valeur
Mapper
Clé 1 : Val1
Clé 2 : Val2
Clé 1 : Val3
Clé 2 : Val4
Reducer
 Combine les valeurs ayant la même clé
Clé1 : Val5
Clé2 : Val6
Reducer
Hadoop
Hadoop
Un exemple simple?
 On a en entrée plusieurs textes
 On veut compter le nombre d’occurrences
des mots
 De manière distribuée
 En utilisant un job Map Reduce
Datafari
Datafari est notre
solution open source de
recherche d'entreprises,
basée sur Lucene, Solr,
et le framework de
connecteurs Apache
ManifoldCF.
Solr
Apache Solr est une
couche web open source
basée sur la librairie de
recherche Apache
Lucene. Elle ajoute des
fonctionnalités de
serveur web, du
faceting.
Lucene
Apache Lucene est un
moteur de recherche et
d'indexation, en open
source.
Apache : 4
Solr : 2
Lucene : 3
…
Apache : 1
Apache : 1
Solr : 1
Lucene : 1
…
Apache : 1
Solr : 1
Lucene : 1
…
Apache : 1
Lucene : 1
…
Hadoop
Datafari
Datafari est notre
solution open source de
recherche d'entreprises,
basée sur Lucene, Solr,
et le framework de
connecteurs Apache
ManifoldCF.
Solr
Apache Solr est une
couche web open source
basée sur la librairie de
recherche Apache
Lucene. Elle ajoute des
fonctionnalités de
serveur web, du
faceting.
Lucene
Apache Lucene est un
moteur de recherche et
d'indexation, en open
source.
Reducer
Mapper
Mapper
Mapper
Hadoop
Distribution du l’algo en Map Reduce
Apache : 13 Apache : 44 Apache : 2
Lucene : 10
Open : 19
Solr : 10
Solr : 10 Manifold : 1Nœud 1 Nœud 3Nœud 2 Nœud 4
Opération Map sur les documents sur chacun
des noeuds
Hadoop
Apache : 1
Apache : 1
Apache : 1 Apache : 1
Lucene : 1
Open : 1
Solr : 1
Solr : 1
Solr : 1
Manifold : 1
Source : 1
Source : 1
Nœud 1 Nœud 3Nœud 2 Nœud 4
Map Map Map Map
Hadoop
Echange des données entre les nœud (shuffle)
Nœud 1 Nœud 3Nœud 2 Nœud 4
Apache : 1
Apache : 1
Apache : 1 Apache : 1
Lucene : 1
Open : 1
Solr : 1
Solr : 1
Solr : 1
Manifold : 1
Source : 1
Source : 1
Lucene : 1
Manifold : 1
Open : 1
Opération de Reduce sur chacun des noeuds
Hadoop
Apache : 1
Apache : 1
Apache : 1
Apache : 1
Lucene : 1
Open : 1
Solr : 1
Solr : 1
Solr : 1
Manifold : 1
Source : 1
Source : 1
Apache : 4 Solr : 3 Source : 2
Nœud 4
Reduce
Nœud 3
Reduce
Nœud 1
Reduce
Nœud 2
Reduce
Créé par Doug Cutting
Crawler Web
Permet de crawler un large
volume de données
Basé sur Hadoop
Nutch
Projet Apache
Surcouche d’Hadoop
Permet de déployer sur Hadoop des
traitements tel que:
 Identification de language
 Extraction de contenu (Tika)
 Pipeline UIMA
Avant l’ingestion dans Solr
Behemoth
Possibilité de stocker l’index de Solr sur HDFS
 Stockage de gros volume de donnée
 Gestion de la réplication
 Utilisation d’un cluster Hadoop existant
A venir: Possibilité de créer l’index à l’aide de
job Map Reduce
 Augmentation performance d’indexation sur de
gros volumes de données
Solr directement couplé avec Hadoop
Des questions???
Merci!!!
Sites web :
www.francelabs.com
www.datafari.com
Email : olivier.tavard@francelabs.com
Twitter : Francelabs

Weitere ähnliche Inhalte

Was ist angesagt?

Dense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfDense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfSease
 
FIBO in Neo4j: Applying Knowledge Graphs in the Financial Industry
FIBO in Neo4j: Applying Knowledge Graphs in the Financial IndustryFIBO in Neo4j: Applying Knowledge Graphs in the Financial Industry
FIBO in Neo4j: Applying Knowledge Graphs in the Financial IndustryNeo4j
 
Introduction à ElasticSearch
Introduction à ElasticSearchIntroduction à ElasticSearch
Introduction à ElasticSearchFadel Chafai
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & DroolsSandip Jadhav
 
The Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot PersistenceThe Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot PersistenceAbdelmonaim Remani
 
Spring HATEOAS
Spring HATEOASSpring HATEOAS
Spring HATEOASYoann Buch
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearchpmanvi
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차Taekyung Han
 
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018 Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018 Amazon Web Services Korea
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developersPatrick Savalle
 
HTTP and Your Angry Dog
HTTP and Your Angry DogHTTP and Your Angry Dog
HTTP and Your Angry DogRoss Tuck
 
파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링HWANGTAEYONG
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안SANG WON PARK
 
Consuming RealTime Signals in Solr
Consuming RealTime Signals in Solr Consuming RealTime Signals in Solr
Consuming RealTime Signals in Solr Umesh Prasad
 
Solr Query Parsing
Solr Query ParsingSolr Query Parsing
Solr Query ParsingErik Hatcher
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Ryan Cuprak
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문SeungHyun Eom
 

Was ist angesagt? (20)

Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Dense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdfDense Retrieval with Apache Solr Neural Search.pdf
Dense Retrieval with Apache Solr Neural Search.pdf
 
Manage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with TerraformManage Your Akamai-as-Code with Terraform
Manage Your Akamai-as-Code with Terraform
 
FIBO in Neo4j: Applying Knowledge Graphs in the Financial Industry
FIBO in Neo4j: Applying Knowledge Graphs in the Financial IndustryFIBO in Neo4j: Applying Knowledge Graphs in the Financial Industry
FIBO in Neo4j: Applying Knowledge Graphs in the Financial Industry
 
Introduction à ElasticSearch
Introduction à ElasticSearchIntroduction à ElasticSearch
Introduction à ElasticSearch
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & Drools
 
The Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot PersistenceThe Rise of NoSQL and Polyglot Persistence
The Rise of NoSQL and Polyglot Persistence
 
Spring HATEOAS
Spring HATEOASSpring HATEOAS
Spring HATEOAS
 
Json
JsonJson
Json
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
 
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018 Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
Amazon Neptune- 신규 그래프 데이터베이스 서비스 활용::김상필, 강정희::AWS Summit Seoul 2018
 
REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developers
 
HTTP and Your Angry Dog
HTTP and Your Angry DogHTTP and Your Angry Dog
HTTP and Your Angry Dog
 
파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링파이썬을 활용한 웹 크롤링
파이썬을 활용한 웹 크롤링
 
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
 
Consuming RealTime Signals in Solr
Consuming RealTime Signals in Solr Consuming RealTime Signals in Solr
Consuming RealTime Signals in Solr
 
Solr Query Parsing
Solr Query ParsingSolr Query Parsing
Solr Query Parsing
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)
 
Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문Elastic Search (엘라스틱서치) 입문
Elastic Search (엘라스틱서치) 입문
 

Andere mochten auch

Integrate ManifoldCF with Solr
Integrate ManifoldCF with SolrIntegrate ManifoldCF with Solr
Integrate ManifoldCF with Solrfrancelabs
 
Apprendre Solr en deux heures
Apprendre Solr en deux heuresApprendre Solr en deux heures
Apprendre Solr en deux heuresSaïd Radhouani
 
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchBesoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchfrancelabs
 
Migration d'Exalead vers Solr - IFCE et France Labs - Search Day 2014
Migration d'Exalead vers Solr - IFCE et France Labs - Search Day 2014Migration d'Exalead vers Solr - IFCE et France Labs - Search Day 2014
Migration d'Exalead vers Solr - IFCE et France Labs - Search Day 2014francelabs
 
Marseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France LabsMarseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France Labsfrancelabs
 
T3UNI12 : SOLR workshop
T3UNI12 : SOLR workshopT3UNI12 : SOLR workshop
T3UNI12 : SOLR workshopPaul Blondiaux
 
Introduction to Apache Solr
Introduction to Apache SolrIntroduction to Apache Solr
Introduction to Apache SolrAndy Jackson
 
Geneva jug Lucene Solr
Geneva jug Lucene Solr Geneva jug Lucene Solr
Geneva jug Lucene Solr francelabs
 
Solr + Hadoop - Fouillez facilement dans votre système Big Data
Solr + Hadoop - Fouillez facilement dans votre système Big DataSolr + Hadoop - Fouillez facilement dans votre système Big Data
Solr + Hadoop - Fouillez facilement dans votre système Big Datafrancelabs
 
Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014
Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014
Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014francelabs
 
Sitecore Dev User Group Meetup in Milwaukee - Perficient - Rick Bauer
Sitecore Dev User Group Meetup in Milwaukee - Perficient - Rick BauerSitecore Dev User Group Meetup in Milwaukee - Perficient - Rick Bauer
Sitecore Dev User Group Meetup in Milwaukee - Perficient - Rick BauerRick Bauer
 
Plannning for the GSA Sunsetting feat. Coveo
Plannning for the GSA Sunsetting feat. CoveoPlannning for the GSA Sunsetting feat. Coveo
Plannning for the GSA Sunsetting feat. CoveoMC+A
 
Lucene - 10 ans d'usages plus ou moins classiques
Lucene - 10 ans d'usages plus ou moins classiquesLucene - 10 ans d'usages plus ou moins classiques
Lucene - 10 ans d'usages plus ou moins classiquesSylvain Wallez
 
Use cases for cassandra in federal and state government
Use cases for cassandra in federal and state governmentUse cases for cassandra in federal and state government
Use cases for cassandra in federal and state governmentOpenSource Connections
 
Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014
Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014
Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014francelabs
 
Coveo Search - Product Overview
Coveo Search - Product OverviewCoveo Search - Product Overview
Coveo Search - Product OverviewAmplexor
 
Présentation FING Mars 2012
Présentation FING Mars 2012Présentation FING Mars 2012
Présentation FING Mars 2012Sculpteo
 
Coveo_Intelligent_Workplace_eBook
Coveo_Intelligent_Workplace_eBookCoveo_Intelligent_Workplace_eBook
Coveo_Intelligent_Workplace_eBookStephen Alfano
 
Rebalance API for SolrCloud: Presented by Nitin Sharma, Netflix & Suruchi Sha...
Rebalance API for SolrCloud: Presented by Nitin Sharma, Netflix & Suruchi Sha...Rebalance API for SolrCloud: Presented by Nitin Sharma, Netflix & Suruchi Sha...
Rebalance API for SolrCloud: Presented by Nitin Sharma, Netflix & Suruchi Sha...Lucidworks
 
Ux076 formation-administration-tomcat
Ux076 formation-administration-tomcatUx076 formation-administration-tomcat
Ux076 formation-administration-tomcatCERTyou Formation
 

Andere mochten auch (20)

Integrate ManifoldCF with Solr
Integrate ManifoldCF with SolrIntegrate ManifoldCF with Solr
Integrate ManifoldCF with Solr
 
Apprendre Solr en deux heures
Apprendre Solr en deux heuresApprendre Solr en deux heures
Apprendre Solr en deux heures
 
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchBesoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearch
 
Migration d'Exalead vers Solr - IFCE et France Labs - Search Day 2014
Migration d'Exalead vers Solr - IFCE et France Labs - Search Day 2014Migration d'Exalead vers Solr - IFCE et France Labs - Search Day 2014
Migration d'Exalead vers Solr - IFCE et France Labs - Search Day 2014
 
Marseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France LabsMarseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France Labs
 
T3UNI12 : SOLR workshop
T3UNI12 : SOLR workshopT3UNI12 : SOLR workshop
T3UNI12 : SOLR workshop
 
Introduction to Apache Solr
Introduction to Apache SolrIntroduction to Apache Solr
Introduction to Apache Solr
 
Geneva jug Lucene Solr
Geneva jug Lucene Solr Geneva jug Lucene Solr
Geneva jug Lucene Solr
 
Solr + Hadoop - Fouillez facilement dans votre système Big Data
Solr + Hadoop - Fouillez facilement dans votre système Big DataSolr + Hadoop - Fouillez facilement dans votre système Big Data
Solr + Hadoop - Fouillez facilement dans votre système Big Data
 
Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014
Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014
Apache Solr pour le eCommerce chez Allopneus avec France Labs - Lib'day2014
 
Sitecore Dev User Group Meetup in Milwaukee - Perficient - Rick Bauer
Sitecore Dev User Group Meetup in Milwaukee - Perficient - Rick BauerSitecore Dev User Group Meetup in Milwaukee - Perficient - Rick Bauer
Sitecore Dev User Group Meetup in Milwaukee - Perficient - Rick Bauer
 
Plannning for the GSA Sunsetting feat. Coveo
Plannning for the GSA Sunsetting feat. CoveoPlannning for the GSA Sunsetting feat. Coveo
Plannning for the GSA Sunsetting feat. Coveo
 
Lucene - 10 ans d'usages plus ou moins classiques
Lucene - 10 ans d'usages plus ou moins classiquesLucene - 10 ans d'usages plus ou moins classiques
Lucene - 10 ans d'usages plus ou moins classiques
 
Use cases for cassandra in federal and state government
Use cases for cassandra in federal and state governmentUse cases for cassandra in federal and state government
Use cases for cassandra in federal and state government
 
Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014
Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014
Apache Solr for eCommerce at Allopneus with France Labs - Lib'Day 2014
 
Coveo Search - Product Overview
Coveo Search - Product OverviewCoveo Search - Product Overview
Coveo Search - Product Overview
 
Présentation FING Mars 2012
Présentation FING Mars 2012Présentation FING Mars 2012
Présentation FING Mars 2012
 
Coveo_Intelligent_Workplace_eBook
Coveo_Intelligent_Workplace_eBookCoveo_Intelligent_Workplace_eBook
Coveo_Intelligent_Workplace_eBook
 
Rebalance API for SolrCloud: Presented by Nitin Sharma, Netflix & Suruchi Sha...
Rebalance API for SolrCloud: Presented by Nitin Sharma, Netflix & Suruchi Sha...Rebalance API for SolrCloud: Presented by Nitin Sharma, Netflix & Suruchi Sha...
Rebalance API for SolrCloud: Presented by Nitin Sharma, Netflix & Suruchi Sha...
 
Ux076 formation-administration-tomcat
Ux076 formation-administration-tomcatUx076 formation-administration-tomcat
Ux076 formation-administration-tomcat
 

Ähnlich wie Presentation Lucene / Solr / Datafari - Nantes JUG

Panorama de l'offre de logiciels libres pour bibliothèque v2
Panorama de l'offre de logiciels libres pour bibliothèque v2Panorama de l'offre de logiciels libres pour bibliothèque v2
Panorama de l'offre de logiciels libres pour bibliothèque v2Marc Maisonneuve
 
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...Véronique Gambier
 
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...Véronique Gambier
 
Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Thibaud Vibes
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABESABES
 
Développement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchRobert Viseur
 
Elasticsearch - Devoxx France 2012
Elasticsearch - Devoxx France 2012Elasticsearch - Devoxx France 2012
Elasticsearch - Devoxx France 2012David Pilato
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08Loïc Descotte
 
Spire : l'archive ouverte de Sciences Po
Spire : l'archive ouverte de Sciences PoSpire : l'archive ouverte de Sciences Po
Spire : l'archive ouverte de Sciences PoJean-François Lutz
 
June Spark meetup : search as recommandation
June Spark meetup : search as recommandationJune Spark meetup : search as recommandation
June Spark meetup : search as recommandationModern Data Stack France
 
Presentation dublincore l3
Presentation dublincore l3Presentation dublincore l3
Presentation dublincore l3DublinCore2b
 
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"ABES
 
Créer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresCréer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresRobert Viseur
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfLarbaSAWADOGO2
 
Quand Koha rencontre Primo - « Une API comédie »
Quand Koha rencontre Primo - « Une API comédie »Quand Koha rencontre Primo - « Une API comédie »
Quand Koha rencontre Primo - « Une API comédie »Julien Sicot
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementMohamed hedi Abidi
 
Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...
Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...
Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...ABES
 
Solr and Elasticsearch in Action (at Breizhcamp)
Solr and Elasticsearch in Action (at Breizhcamp)Solr and Elasticsearch in Action (at Breizhcamp)
Solr and Elasticsearch in Action (at Breizhcamp)Lucian Precup
 
T3UNIFR11 - TYPO3 et les moteurs de recherche
T3UNIFR11 - TYPO3 et les moteurs de rechercheT3UNIFR11 - TYPO3 et les moteurs de recherche
T3UNIFR11 - TYPO3 et les moteurs de recherchesitengo
 

Ähnlich wie Presentation Lucene / Solr / Datafari - Nantes JUG (20)

Panorama de l'offre de logiciels libres pour bibliothèque v2
Panorama de l'offre de logiciels libres pour bibliothèque v2Panorama de l'offre de logiciels libres pour bibliothèque v2
Panorama de l'offre de logiciels libres pour bibliothèque v2
 
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
 
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
Panoramadeloffredelogicielslibrespourbibliothque 150123082251-conversion-gate...
 
Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
 
Développement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend SearchDéveloppement d'un moteur de recherche avec Zend Search
Développement d'un moteur de recherche avec Zend Search
 
Show de boucane pour ELK
Show de boucane pour ELKShow de boucane pour ELK
Show de boucane pour ELK
 
Elasticsearch - Devoxx France 2012
Elasticsearch - Devoxx France 2012Elasticsearch - Devoxx France 2012
Elasticsearch - Devoxx France 2012
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
 
Spire : l'archive ouverte de Sciences Po
Spire : l'archive ouverte de Sciences PoSpire : l'archive ouverte de Sciences Po
Spire : l'archive ouverte de Sciences Po
 
June Spark meetup : search as recommandation
June Spark meetup : search as recommandationJune Spark meetup : search as recommandation
June Spark meetup : search as recommandation
 
Presentation dublincore l3
Presentation dublincore l3Presentation dublincore l3
Presentation dublincore l3
 
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
Jabes 2011 - Actualités et projets de l'Abes "Les API Sudoc, le Sudoc autrement"
 
Créer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresCréer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libres
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Quand Koha rencontre Primo - « Une API comédie »
Quand Koha rencontre Primo - « Une API comédie »Quand Koha rencontre Primo - « Une API comédie »
Quand Koha rencontre Primo - « Une API comédie »
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...
Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...
Jabes 2011 - Actualités et projets de l'Abes "Ouverture des données du Sudoc,...
 
Solr and Elasticsearch in Action (at Breizhcamp)
Solr and Elasticsearch in Action (at Breizhcamp)Solr and Elasticsearch in Action (at Breizhcamp)
Solr and Elasticsearch in Action (at Breizhcamp)
 
T3UNIFR11 - TYPO3 et les moteurs de recherche
T3UNIFR11 - TYPO3 et les moteurs de rechercheT3UNIFR11 - TYPO3 et les moteurs de recherche
T3UNIFR11 - TYPO3 et les moteurs de recherche
 

Presentation Lucene / Solr / Datafari - Nantes JUG

  • 1. Apache Solr Nantes JUG Aurélien MAZOYER Olivier TAVARD 16/02/15
  • 2. Introduction A propos :  Cofondateur de la société France Labs  Développeur (principalement Java)  Formateur Solr A propos de France Labs :  Startup créée en 2011  Partenaire officiel de LucidWorks pour la France
  • 3. Introduction Domaine:  Moteurs de recherche d'entreprise Open Source 2 activités:  Consulting/support/formation sur Lucene/Solr/ElastiSearch/LucidWorks/Datafari  R&D (algorithmes de ranking, connecteurs, réseaux sociaux)
  • 4. Pourquoi 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 Big Data  Utilisé par Twitter, Linkedin, eBay, Salesforce, IBM, Apple
  • 5. Présentation de Solr  Architecture SOLR  Scoring  Indexation  Requêtage  Fonctionnalités  Solr Cloud Solr et son écosystème
  • 6. Présentation de Solr  Architecture SOLR  Scoring  Indexation  Requêtage  Fonctionnalités  Solr Cloud Solr et son écosystème
  • 7. La recherche est un oignon!
  • 8. La recherche est un oignon!
  • 9. La recherche est un oignon matriciel!
  • 11. Lucene Créé en 2000 par Doug Cutting. Version Actuelle : Lucene v. 4.10.3 Décembre 2014) Projet Open Source, Apache depuis 2001 Librairie de recherche “full-text” Rapide, stable, performant, modulable 100% Java (pas de dépendances)
  • 12. Lucene Un outil qui permet:  De créer un index à partir de documents INDEX
  • 13. Index
  • 14. Document FieldTerm Document, fields, terms  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 : … • …
  • 15. Lucene Un outil qui permet:  De créer un index à partir de documents  D’effectuer des recherches dans cet index INDEX
  • 16. Lucene Différence avec une base de données :  Optimisé 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
  • 19. Analyzer Index coquilles saint Jacques …. Document Requête coquilles saint jacques Coquilles saint-jacques coquilles saint jacques Coquilles SaintJacques Lucene analyzer Lucene analyzer Indexation Requête Match!
  • 20. Lucene est une simple bibliothèque Besoin d’une couche serveur… Lucene
  • 21. Solr
  • 22. Solr par rapport à Lucene 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 : Solr 4.10.3 (Décembre 2014)
  • 23. Solr par rapport à Lucene APIs XML/HTTP de type REST Configuration par fichiers XML Mécanisme de Cache, Réplication Interface admin web
  • 24. Solr par rapport à Lucene Interfaces HTTP pour :  ajouter des documents (POST) • http://localhost:8983/solr/update  effectuer des recherches (GET) • http://localhost:8983/solr/select
  • 25. © www,oblady,com Intéraction Solr / Monde extérieur Solr Update Handler Search Handler Lucene
  • 26. © www,oblady,com Architecture (Virtual) Machine OS Java Virtual Machine Conteneur de servlet (Jetty, Tomcat) Solr faceting, replication, caching, distributed search, admin, Lucene best practices Lucene Java core search, analysis tools, hit highlighting, spell checking
  • 28. Surcouche Besoin (parfois) d’une surcouche:  Interface WEB pour le client  Crawl des documents sur les différents systèmes  Gestion de la sécurité  Statistiques Exemples de solutions « clé en main » :  Constellio  LucidWorks  Datafari
  • 30. Présentation de Solr  Architecture SOLR  Scoring  Indexation  Requêtage  Fonctionnalités  Solr Cloud Solr et son écosystème
  • 32. Récupérer les bons résultats… … et seulement ceux là Precision  Pourcentage de docs pertinents sur les docs retournés Matchs corrects/total retourné Recall  Pourcentage de docs pertinents retournés sur le total des docs pertinents  Matches corrects/(matchs corrects+matchs manqués)  Trouver un bon compromis… Documents Pertinents Document Retournés Documents Pertinents Docs retournés et pertinents Recherche pertinente
  • 33. Scoring en Lucene Formule paramètrable Combinaison de  Boolean Model (Match)  Vector Space Model (Scoring) • Term Frequency • Inverse Document Frequency…  Boosts…
  • 34. TF-IDF 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.
  • 35. TF-IDF Inverse Document Frequency (IDF):  Rareté du terme dans l’ensemble de l’index 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.
  • 36. TF-IDF Norms :  Taille des champs Solr Titre : Les moteurs de recherche Content : Apache Solr est une librairie de recherche full text en open source. Elle propose des API REST, des mécanismes de cache, réplication et mise à l’échelle. Titre : Encyclopédie Content : Solr est une moteur de recherche open source. Elastic Search est un moteur de recherche open source (mais quand même un peu moins bien) …. …. …. Le chat est une animal de compagnie avec des oreilles.
  • 37. Boosts:  Privilégier un doc en particulier…  Privilégier un champ par rapport à un autre…  Privilégier les phrases exactes…  Privilégier les docs qui matchent une requête…  Privilégier les docs par rapport au résultat d’une fonction …  Privilégier les docs géolocalisés les plus proches…. Boosts
  • 38. Boosts 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.
  • 41. Présentation de Solr  Architecture SOLR  Scoring  Indexation  Requêtage  Fonctionnalités  Solr Cloud Solr et son écosystème
  • 42. Le crawling de documents n’est PAS le job de Solr Mais il existe de nombreux outils pour cela :  DIH  Nutch  Aperture  Manifold CF  Google Connectors Crawling
  • 43. Préparer les documents  Convertir en XML, JSON, CSV (ou document riche avec Tika)  Peut contenir plusieurs Docs Indexation
  • 44. 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 Indexation
  • 45. Avec des clients spécifiques:  SolrJ • Client le plus évolué  SolrNet  rsolr  SolPython  SolPerl  Solarium  scalikesolr  … Clients
  • 46. Documents visibles une fois commités Possibilité d’utiliser le « soft-commit » Pour avoir du NRT Latence d’indexation
  • 47. Pour la configuration de Solr Pour la configuration de Solr (Presque) tout se passe dans 2 fichiers:  Schema.xml • Décrit les données à indexer  SolrConfig.xml • Comportement interne du serveur et interactions avec le monde extérieur
  • 48. Schema Déclaration des champs fixes: Ou dynamiques:
  • 49. Schema Et des types de champs:  Entier  Date  String • Un seul morceau  Text • Text découpé et normalisé • Avec un analyzer spécifique
  • 50. Analyzer 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
  • 52. Analyzers Beaucoup d’analyzers prédéfinis  Spécifiques au langage Mais modulables : beaucoup de composants disponibles :  Ajout de synonymes  Stemming • manger, mangera => mang  Phonétique  …
  • 54. Présentation de Solr  Architecture SOLR  Scoring  Indexation  Requêtage  Fonctionnalités  Solr Cloud Solr et son écosystème
  • 55. Première requête URL :  http://localhost:8983/solr/collection1/select... HTTP GET request  Web browser  Curl  SolrJ  …
  • 56. Structure de la requête http://localhost:8983/solr/collection1/select ?q=*:*&start=0&rows=10&fl=description  /solr/ : contexte de l’application web où Solr est installé  /collection1: Collection (ou index) de Solr  select : request handler  Après le ? => paramètres non ordonnés
  • 58. Type de requêtes Type But Exemple TermQuery Simple terme Peut être spécifique à un champ Tarte Type:Dessert PhraseQuery Match de plusieurs termes dans l’ordre « tarte aux pommes" RangeQuery Fourchette [A TO Z] {A TO Z} WildcardQuery Lettres manquantes j*v? f??bar PrefixQuery Tous les termes qui commencent par X. cheese* FuzzyQuery Distance de Levenshtein manger~ BooleanQuery Agrégation de plusieurs queries manger AND cheese* -cheesecake
  • 59. Requêtage L’utilisateur peut donc faire des requêtes complexes :
  • 60. Requêtage Mais fera plutôt des requêtes de ce type: A nous de faire avec… 
  • 61. Présentation de Solr  Architecture SOLR  Scoring  Indexation  Requêtage  Fonctionnalités  Solr Cloud Solr et son écosystème
  • 66. Autres fonctionnalités More Like This  Obtenir des documents similaires à un document  Similarité textuelle Highlighting
  • 67. Fonctionnalité Joining  Possibilité de faire une jointure sur plusieurs indexes (clé primaire -> clé secondaire)  Mais à éviter  Préférer la dénormalisation
  • 68. Aplatir les données  Dénormalisation
  • 69.  Données redondantes  Recherche rapide sur un seul index (pas de join)
  • 70. Et les vôtres… Solr est très orienté plugin Possibilité de surcharger quasiment tout…
  • 71. Configuration de Solr Pour la configuration de Solr (Presque) tout se passe dans 2 fichiers:  Schema.xml • Décrit les données à indexer  SolrConfig.xml • Comportement interne du serveur et interaction avec le monde extérieur
  • 72. Exemple: Solrconfig.xml permet le paramètrage :  Request Handler  Composants associés (autocomplete, highlighting)  Caches, Fréquences de commits etc…  Bref, presque tout le reste…
  • 75. Présentation de Solr  Architecture SOLR  Scoring  Indexation  Requêtage  Fonctionnalités  Solr Cloud Solr et son écosystème
  • 76. Solr Cloud Nouvelle architecture de Solr pour gérer la scalabilité Nouveau système de mise à l’échelle de Solr  Pack 2 en 1 • Distribution - Volumétrie élevée • Réplication - Répartition de la charge - Haute dispo Architecture flexible
  • 77. Zookeeper Logiciel de gestion de configurations pour système distribués Contient les configs des indexs de Solr Cloud Les Solr s’enregistrent et se désenregistrent auprès du Zookeeper Statuts des shards enregistrés
  • 78. Nouvelles notions Sharding  Un Shard est un morceau d’index  Une recherche distribuée se fait sur tous les shards (ie sur tout l’index)  Utile pour gérer une grosse volumétrie de documents Shard3 Requêtes Shard1 Shard2 Résultats Aggrégés Sous-Requêtes
  • 79. Nouvelles notions Leader et Replica pour la réplication  On n’a pas de maître/esclave mais des leader/replica • Un replica peut devenir leader si son leader tombe  Le leader et le replica contiennent le même shard  Utile pour répartir la charge/assurer une haute dispo Leader Shard 1 Replica 2 Shard 2 Replica 1 Shard 1 Load Balancer Requêtes Requêtes Requêtes
  • 80. 1 index- 2 shards – 2 replicas Un exemple! On veut un index, réparti sur 2 shards (ie : coupé en 2) Chaque shard sera répliqué 1 fois Donc 4 machines INDEX
  • 81. On démarre la première machine, envoie la configuration et spécifie le nombre de shards voulus Solr Cloud Zookeeper ConfigIndex1 Leader Shard1
  • 82. On démarre la deuxième machine, sans lui spécifier de configuration mais en pointant sur le Zookeeper Solr Cloud Zookeeper Leader Shard2Leader Shard1
  • 83. On démarre la 3ème machine, sans lui spécifier de configuration mais en pointant sur le Zookeeper Solr Cloud Zookeeper Leader Shard2 Replica Shard1 Leader Shard1
  • 84. Replica Shard1 On démarre la 4ème machine, sans lui spécifier de configuration mais en pointant sur le Zookeeper Solr Cloud Zookeeper Leader Shard2 Replica Shard2 Leader Shard1
  • 85. Indexation Distribution automatique des updates Comment? On envoie les docs à n’importe quelle machine  Solr se charge de les transmettre à la bonne machine
  • 86. Leader 1 Leader 2 Replica 1 Replica 2 Solr Cloud Indexer
  • 87. Recherche Distribution des recherches automatiques Hors SolrJ :  On registre les shards dans le load balancer Avec SolrJ :  On utilise un objet CloudSolrServer • Pointé sur Zookeeper • Gère le load balancing
  • 88. Leader 1 Leader 2 Replica 1 Replica 2 Solr Cloud Search Search
  • 89. Avantages Architecture très flexible  En cas d’augmentation de charge • Ajout de machines qui pointent sur Zookeeper • Si pas de client intelligent - Enregistrement des machines dans le Load Balancer  En cas de diminution de charge • Eteindre des machines Zookeeper  Gestion centralisée des configurations  Visualisation du statut des shards
  • 92. Avantages Réplication  Automatique et fiable Support du NRT Distribution automatique des MAJs Distribution automatique des recherches
  • 93. Solr 5 Sortie imminente Plus un WAR mais une application Nouvelles fonctionnalités :  IDF distribué  Stats component amélioré Solr 4 : apport de SolrCloud Solr 5 : maturité, simplification à l’usage
  • 95. Présentation de Solr Solr et son écosystème  Crawling des données  Exemple de UI  Outils sémantiques  Hadoop
  • 96. Présentation de Solr Solr et son écosystème  Crawling des données  Exemple de UI  Outils sémantiques  Hadoop
  • 97. Solr ne crawle PAS les données Besoin d’un crawler pour :  Connexion au système externe à crawler  Récupération des données  Gestions des autorisations Role
  • 98. Mode Push ou Pull Crawling normal ou incrémental Réglage de l’impact sur le système crawlé  Throttling  Scheduling En cas de documents riches (Pdf, Word):  Extraction du contenu Role
  • 99. Apache Tika Contribution de Solr  Détection du Mime-type  Embarque des librairies pour: • Lire le contenu • Extraire les meta-données  Extension supportés: • XHTML • MS Office (OLE2 and OOXML) • OpenDocument • PDF • RTF • Zip • Audio/Video/Image files Extraction de contenu
  • 100. Les crawlers Differents Crawlers  Nutch • Crawler web distribué  DIH • Contrib de Solr • Crawl DB, XML  Aperture • File, Web Et Framework  Google Enterprise Connector  Manifold CF
  • 101. Manifold CF Basé sur « Connector Framework » développé par Karl Wright pour la MetaCarta Appliance Donné à l’Apache Software Foundation en 2009 (première version 2011) Mai 2012 : sortie d’incubation Version actuelle 1.8.1 (Février 2015)
  • 102. Manifold CF Crawling incrémental Gère les autorisations Configuration par UI et API Créé pour Solr Architecture en mode plugin
  • 103. Differents connecteurs pour :  Content Repositories : • SharePoint • Windows Share • CMIS (Alfresco) • DB • RSS • Wiki  Authorities: • AD • LDAP  Output repositories : • Solr • Elastic Search Manifold CF
  • 104. 2 composants principaux:  Pull agent: • Contient les connecteurs (repository et output connectors) • Récupère les données à partir des différents repositories • Et les push avec leurs ACLs aux output connectors Manifold CF Pull Agent
  • 105. 2 composants principaux:  Authority service: • Contient les authority connectors • Liste de tous les tokens pour l’utilisateur courant Manifold CF
  • 106. Intégration avec Solr  Exemple : crawl de fichiers avec autorisation • Environnement : - File Share Windows - Active Directory • Indexer les fichiers et respecter les droits à la requête Manifold CF
  • 107. Configuration côté Manifold CF  Configuration du connecteur Samba  Configuration du connecteur AD  Configuration du connecteur Solr Manifold CF
  • 108. Modification du schéma Solr  Ajout de champs pour indexer les ACLs • AllowFile, DenyFile, AllowDirectory, DenyDirectory…  Ajout d’un plugin à Solr (MCF Search Plugin) pour interroger Manifold CF pour obtenir les infos d’utilisateur Manifold CF
  • 109. Manifold CF AD Manifold CF pull Agent Connecteur JCIFS Connecteur Solr Docs and access tokens Get User access token Repositories Authorities Manifold CF OutputSolr MCF Search Plugin Indexation Manifold CF authority service Connecteur AD Windows Share
  • 110. Manifold CF AD Manifold CF pull Agent Connecteur JCIFS Connecteur Solr Docs and access tokens Get User access token Repositories Authorities Manifold CF Output Windows Share Solr MCF Search Plugin Requête Manifold CF authority service Connecteur AD Front End Search authentifié Filtre les docs suivant leurs ACLs et les infos d’utilisateurRésultats autorisés
  • 112. Présentation de Solr Solr et son écosystème  Crawling des données  Exemple de UI  Outils sémantiques  Hadoop
  • 113. AjaxFranceLabs Inspiré de AjaxSolr Client Javascript/Ajax Fournit plusieurs composants:  Un Manager • Gère la connexion avec le serveur  Et des widgets • Composant graphique et logique
  • 116. Présentation de Solr Solr et son écosystème  Crawling des données  Exemple de UI  Outils sémantiques  Hadoop
  • 117. Le sémantique n‘est pas le travail de Solr Fait seulement de la recherche full-text (mais le fait bien ) Solr  Il existe des plugins pour cela • UIMA • GATE • OpenNLP Sémantique
  • 118. Sémantique UIMA (Unstructured Information Management Architecture)  Framework Apache  Plugin Solr  Côté indexation  Contient un pipeline d’Annotators • Open Calais • AlchemyAPI • OpenNLP • …  Chaque annotator va rajouter des métadonnées au document
  • 119. UIMA Ex : OpenNLP  Part of speech • Verbe nom…  Extraction d’entités • Lieu • Personne
  • 120. Présentation de Solr Solr et son écosystème  Crawling des données  Exemple de UI  Outils sémantiques  Analytics  Hadoop
  • 121. LogStash for Solr + Solr + Banana Banana
  • 122. Présentation de Solr Solr et son écosystème  Crawling des données  Exemple de UI  Outils sémantiques  Hadoop
  • 123. Hadoop Créé par Doug Cutting Framework open source Inspiré par les papiers sur Google Map Reduce et Google File System
  • 125. Hadoop Scénarios Big Data  Text mining  Création et analyse de graphes  Reconnaissance de patterns  Moteurs de recommandations, ciblage publicité  Analyse de menaces, surveillances de marchés
  • 126. Hadoop Traiter des grands volumes de données en un minimum de temps Stocker des immenses volumes de données Fonctionne sur machines de configuration faible et peu coûteuses
  • 127. Hadoop Architecture (très) simplifiée de Hadoop Nœud 1 Nœud 3Nœud 2 Nœud 4 Couche Traitement (Map Reduce) Couche Stockage (HDFS)
  • 128. Hadoop Couche stockage (HDFS)  Système de fichier distribué  Utilise les disques « normaux » de chacun des nœuds… …pour donner l’impression de n’utiliser qu’un seul énorme disque  Fiable (données répliquées 3 fois)
  • 129. Hadoop Couche traitement (Map Reduce)  Hadoop exécute des jobs Map Reduce  Notre algo doit donc implémenter: • Un mapper • Un reducer  Pour être executé de manière distribuée par Hadoop en tant que job
  • 130. Clé1 : Val1 Clé2 : Val2 Clé3 : Val3 Clé4 : Val4 Hadoop Mapper  Prend des données en entrée  Et les transforme en paire de clé valeur Mapper
  • 131. Clé 1 : Val1 Clé 2 : Val2 Clé 1 : Val3 Clé 2 : Val4 Reducer  Combine les valeurs ayant la même clé Clé1 : Val5 Clé2 : Val6 Reducer Hadoop
  • 132. Hadoop Un exemple simple?  On a en entrée plusieurs textes  On veut compter le nombre d’occurrences des mots  De manière distribuée  En utilisant un job Map Reduce Datafari Datafari est notre solution open source de recherche d'entreprises, basée sur Lucene, Solr, et le framework de connecteurs Apache ManifoldCF. Solr Apache Solr est une couche web open source basée sur la librairie de recherche Apache Lucene. Elle ajoute des fonctionnalités de serveur web, du faceting. Lucene Apache Lucene est un moteur de recherche et d'indexation, en open source.
  • 133. Apache : 4 Solr : 2 Lucene : 3 … Apache : 1 Apache : 1 Solr : 1 Lucene : 1 … Apache : 1 Solr : 1 Lucene : 1 … Apache : 1 Lucene : 1 … Hadoop Datafari Datafari est notre solution open source de recherche d'entreprises, basée sur Lucene, Solr, et le framework de connecteurs Apache ManifoldCF. Solr Apache Solr est une couche web open source basée sur la librairie de recherche Apache Lucene. Elle ajoute des fonctionnalités de serveur web, du faceting. Lucene Apache Lucene est un moteur de recherche et d'indexation, en open source. Reducer Mapper Mapper Mapper
  • 134. Hadoop Distribution du l’algo en Map Reduce Apache : 13 Apache : 44 Apache : 2 Lucene : 10 Open : 19 Solr : 10 Solr : 10 Manifold : 1Nœud 1 Nœud 3Nœud 2 Nœud 4
  • 135. Opération Map sur les documents sur chacun des noeuds Hadoop Apache : 1 Apache : 1 Apache : 1 Apache : 1 Lucene : 1 Open : 1 Solr : 1 Solr : 1 Solr : 1 Manifold : 1 Source : 1 Source : 1 Nœud 1 Nœud 3Nœud 2 Nœud 4 Map Map Map Map
  • 136. Hadoop Echange des données entre les nœud (shuffle) Nœud 1 Nœud 3Nœud 2 Nœud 4 Apache : 1 Apache : 1 Apache : 1 Apache : 1 Lucene : 1 Open : 1 Solr : 1 Solr : 1 Solr : 1 Manifold : 1 Source : 1 Source : 1
  • 137. Lucene : 1 Manifold : 1 Open : 1 Opération de Reduce sur chacun des noeuds Hadoop Apache : 1 Apache : 1 Apache : 1 Apache : 1 Lucene : 1 Open : 1 Solr : 1 Solr : 1 Solr : 1 Manifold : 1 Source : 1 Source : 1 Apache : 4 Solr : 3 Source : 2 Nœud 4 Reduce Nœud 3 Reduce Nœud 1 Reduce Nœud 2 Reduce
  • 138. Créé par Doug Cutting Crawler Web Permet de crawler un large volume de données Basé sur Hadoop Nutch
  • 139. Projet Apache Surcouche d’Hadoop Permet de déployer sur Hadoop des traitements tel que:  Identification de language  Extraction de contenu (Tika)  Pipeline UIMA Avant l’ingestion dans Solr Behemoth
  • 140. Possibilité de stocker l’index de Solr sur HDFS  Stockage de gros volume de donnée  Gestion de la réplication  Utilisation d’un cluster Hadoop existant A venir: Possibilité de créer l’index à l’aide de job Map Reduce  Augmentation performance d’indexation sur de gros volumes de données Solr directement couplé avec Hadoop
  • 143. Sites web : www.francelabs.com www.datafari.com Email : olivier.tavard@francelabs.com Twitter : Francelabs