Marseille JUG Novembre 2013 Lucene Solr France Labs

  • View
    3.455

  • Download
    4

  • Category

    Business

Preview:

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

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

Google

Démonstration par l’exemple

Construire PageRank grâce à Map/reduce

Google

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

Contacts

Site web : www.francelabs.com

Email : olivier.tavard@francelabs.com

Twitter : Francelabs

Recommended