Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

139
Solr Aurélien MAZOYER Olivier TAVARD

description

Découvrez les outils open source de Search qui ont déjà convaincu de nombreuses entreprises, et qui est proposé par la fondation Apache: Lucene / Solr. Dans la première partie, histoire de savoir de quoi on parle, Aurélien vous présentera les projets Lucene et Solr, leurs composants, leur architecture, leurs features, et on saupoudrera tout ça de scalabilité avec SolrCloud. En deuxième partie, Aurélien vous présentera l'écosystème (ou du moins une partie) qui gravite autour de Lucene /Solr: ManifoldCF qui permet de gérer les connexions aux sources de données (avec démo d'indexation de contenu et recherche en live), Hadoop, car il faut bien parler de Big Data, et parce que Solr devient un des outils de référence pour faire du search sur Hadoop (avec là encore une démo d'interaction Hadoop et Solr). Avec tout ça vous aurez dans vos bagages de quoi gérer des Big projets avec du Big search dedans.

Transcript of Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Page 1: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr

Aurélien MAZOYER

Olivier TAVARD

Page 2: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

SolrIntroduction

A propos de moi : Cofondateur de la société France Labs Développeur (principalement Java) Formateur Solr (France Labs, Lucidworks) Enseignant vacataire (Polytech’Nice-Sophia)

A propos de France Labs : Startup créée en 2011 Partenaire officiel de LucidWorks pour la France

Page 3: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

SolrIntroduction

Domaine: Moteurs de recherche d'entreprise Open Source

2 activités: Consulting/support/formation sur

Lucene/Solr/Constellio/LucidWorks R&D (algorithmes de ranking, connecteurs, réseaux

sociaux)

Page 4: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

SolrPourquoi 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

Page 5: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de Solr Architecture SOLR Scoring Indexation Requêtage Fonctionnalités Solr Cloud

Solr et son écosystème

Page 6: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de Solr Architecture SOLR Scoring Indexation Requêtage Fonctionnalités Solr Cloud

Solr et son écosystème

Page 7: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrLa recherche est un oignon!

Page 8: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrLa recherche est un oignon!

Page 9: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrLa recherche est un oignon matricielle!

Page 10: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrLucene

Page 11: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrLucene

Créé en 2000 par Doug Cutting. Version Actuelle : Lucene v. 4.6 (Novembre 2013)Projet Open Source, Apache depuis 2001Librairie de recherche “full-text”Rapide, stable, performant, modulable100% Java (pas de dépendances)

Page 12: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrLucene

Un outil qui permet:

De créer un index à partir de documents

INDEX

Page 13: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrIndex

Page 14: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Document

FieldTerm

Architecture SolrDocument, 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 : … • …

Page 15: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrLucene

Un outil qui permet:

De créer un index à partir de documents

D’effectuer des recherches dans cet index

INDEX

Page 16: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrLucene

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

Page 17: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Lucene

Architecture SolrIndexation - Architecture

CrawlerLucene

analyzer Indexer

INDEX

Page 18: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Lucene

Architecture SolrRequêtage - Architecture

Query Parser

Lucene analyzer

Index Searcher

type:voitures AND prix:[3000 TO 5000]

INDEX

Page 19: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrAnalyzer

Indexcoquilles

saint

Jacques

….

Document Requête

coquilles saint jacques

Coquilles saint-jacques

coquilles saint jacques

Coquilles SaintJacques

Lucene analyzer

Lucene analyzer

Indexation Requête

Match!

Page 20: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Lucene est une simple bibliothèque

Besoin d’une couche serveur…

Architecture SolrLucene

Page 21: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrSolr

Page 22: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrSolr par rapport à Lucene

Lucene « embarqué » dans une webappCréé en 2004 par Yonik Seeley à CENT NetworksIn 2006, Solr devient open-source et été cédé à la Apache Software FoundationEn 2010, fusion des projets Lucene et SolrVersion Actuelle : Solr 4.6 (Novembre 2013)

Page 23: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrSolr par rapport à Lucene

APIs XML/HTTP de type RESTConfiguration par fichiers XMLMécanisme de Cache, RéplicationInterface admin web

Page 24: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrSolr par rapport à Lucene

Interfaces HTTP pour : ajouter des documents (POST)

• http://localhost:8983/solr/update effectuer des recherches (GET)

• http://localhost:8983/solr/select

Page 25: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture Solr

© www,oblady,com

Intéraction Solr / Monde extérieur

Solr

Update Handler Search Handler

Lucene

Page 26: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture Solr

© 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

Page 27: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrSurcouche

Page 28: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Architecture SolrSurcouche

Besoin (parfois) d’une surcouche: Interface WEB pour le client Crawl des documents sur les différents systèmes Gestions de la sécurité Statistiques

Exemples de solutions « clé en main » : Constellio LucidWorks Datafari

Page 29: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Des questions???

Page 30: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de Solr Architecture SOLR Scoring Indexation Requêtage Fonctionnalités Solr Cloud

Solr et son écosystème

Page 31: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

ScoringScoring

Page 32: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

ScoringScoring en Lucene

Formule paramètrableCombinaison de Boolean Model (Match) Vector Space Model (Scoring)

• Term Frequency• Inverse Document Frequency…

Boosts…

Page 33: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

ScoringTF-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.

Page 34: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

ScoringTF-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.

Page 35: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

ScoringTF-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édieContent :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.

Page 36: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

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é les plus proches….

ScoringBoosts

Page 37: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

ScoringBoosts

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.

Page 38: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

ScoringScoring en Lucene

Page 39: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Des questions???

Page 40: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de Solr Architecture SOLR Scoring Indexation Requêtage Fonctionnalités Solr Cloud

Solr et son écosystème

Page 41: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documents

Le crawling de documents n’est PAS le job de SolrMais il existe de nombreux outils pour cela : DIH Nutch Aperture Manifold CF Google Connectors

Crawling

Page 42: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documents

Préparer les documents Convertir en XML, JSON, CSV (ou document riche avec Tika) Peut contenir plusieurs Docs

Indexation

Page 43: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

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

Indexation

Page 44: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documents

Avec des clients spécifiques: SolrJ

• Client le plus évolué SolrNet rsolr SolPython SolPerl SolPHP scalikesolr …

Clients

Page 45: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documents

Documents visibles une fois commitésPossibilité d’utiliser le « soft-commit »Pour avoir du NRT

Latence d’indexation

Page 46: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documentsPour 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

Ou dynamiques:

Page 47: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documentsSchema

Déclaration des champs fixes:

Ou dynamiques:

Page 48: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documentsSchema

Et des types de champs: Entier Date String

• Un seul morceau Text

• Text découpé et normalisé• Avec un analyzer spécifique

Page 49: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documentsAnalyzer

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

Page 50: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documentsSchema : Analyzer

Page 51: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Indexer des documentsAnalyzers

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 …

Page 52: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Des questions???

Page 53: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de Solr Architecture SOLR Scoring Indexation Requêtage Fonctionnalités Solr Cloud

Solr et son écosystème

Page 54: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

RequêtagePremière requête

URL : http://localhost:8983/solr/collection1/select...

HTTP GET request Web browser Curl SolrJ …

Page 55: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

RequêtageStructure 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

Page 56: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

RequêtageExemple de retour

Page 57: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

RequêtageType de requêtes

Type But Exemple

TermQuerySimple termePeut être spécifique à un champ

TarteType: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 ANDcheese* -cheesecake

Page 58: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

RequêtageRequêtage

L’utilisateur peut donc faire des requêtes complexe:

Page 59: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

RequêtageRequêtage

Mais fera plutôt des requêtes de ce type:

A nous de faire avec…

Page 60: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de Solr Architecture SOLR Scoring Indexation Requêtage Fonctionnalités Solr Cloud

Solr et son écosystème

Page 61: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

FonctionnalitésSpellchecker

Page 62: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

FonctionnalitésAutocomplete

Page 63: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

FonctionnalitésFacettes

Facettes

Page 64: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

FonctionnalitésGéolocalisation

Page 65: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

FonctionnalitéAutres fonctionnalités

More Like This Obtenir des documents similaires à un

document Similarité textuelle

Highlighting

Page 66: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

FonctionnalitéEt les vôtres…

Solr est très orienté plugin

Possibilité de surcharger quasiment tout…

Page 67: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Fonctionnalité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

Ou dynamiques:

Page 68: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Fonctionnalité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…

Page 69: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Des questions???

Page 70: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

SolrDemo

Démo !

Page 71: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de Solr Architecture SOLR Scoring Indexation Requêtage Fonctionnalités Solr Cloud

Solr et son écosystème

Page 72: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudSolr 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

Page 73: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudZookeeper

Logiciel de gestion de configurations pour système distribuésContient les configs des indexs de Solr CloudLes Solr s’enregistrent et se désenregistrent auprès du ZookeeperStatuts des shards enregistrés

Page 74: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudNouvelles 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 document

Shard3

Requêtes

Shard1 Shard2

RésultatsAggrégés

Sous-Requêtes

Page 75: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudNouvelles 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 contienne 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

Page 76: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr Cloud1 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

Page 77: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

On démarre le première machine, envoie la configuration et spécifie le nombre de shards voulus

SolrSolr Cloud

Zookeeper

ConfigIndex1

Leader Shard1

Page 78: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

On démarre la deuxième machine, sans lui spécifier de configuration mais en pointant sur le Zookeeper

SolrSolr Cloud

ZookeeperLeader Shard2Leader Shard1

Page 79: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

On démarre la 3ème machine, sans lui spécifier de configuration mais en pointant sur le Zookeeper

SolrSolr Cloud

ZookeeperLeader Shard2

Replica Shard1

Leader Shard1

Page 80: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Replica Shard1

On démarre la 4ème machine, sans lui spécifier de configuration mais en pointant sur le Zookeeper

SolrSolr Cloud

ZookeeperLeader Shard2

Replica Shard2

Leader Shard1

Page 81: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudIndexation

Distribution automatique des updatesComment?On envoie les docs à n’importe quelle machine Solr se charge de les transmettre à la bonne machine

Page 82: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Leader 1 Leader 2

Replica 1 Replica 2

SolrSolr Cloud

Indexer

Page 83: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudRecherche

Distribution des recherches automatiqueHors SolrJ : On registre les shards dans le load balancer

Avec SolrJ : On utilise un objet CloudSolrServer

• Pointé sur Zookeeper• Gère le load balancing

Page 84: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Leader 1 Leader 2

Replica 1 Replica 2

SolrSolr Cloud

Search Search

Page 85: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudAvantages

Architecture très flexible En cas d’augmentation de charge

• Ajout de machines qui pointent sur Zookeeper• 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

Page 86: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudAvantages

Réplication Automatique et fiable

Support du NRTDistribution automatique des MAJsDistribution automatique des recherches

Page 87: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Des questions???

Page 88: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr CloudDemo

Démo !

Page 89: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Ecosystème

Page 90: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de SolrSolr et son écosystème Crawling des données Exemple de UI Outils sémantiques Hadoop

Page 91: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de SolrSolr et son écosystème Crawling des données Exemple de UI Outils sémantiques Hadoop

Page 92: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Solr ne crawle PAS les données Besoin d’un crawler pour : Connection au système externe à crawler Récupération des données Gestions des autorisations

Ecosystème - CrawlerRole

Page 93: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Mode Push ou PullCrawling normal ou incrémentalRéglage de l’impact sur le système crawlé Throttling Scheduling

En cas de documents riches (Pdf, Word): Extraction du contenu

Ecosystème - CrawlerRole

Page 94: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Apache TikaContribution 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

Ecosystème - CrawlerExtraction de contenu

Page 95: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Ecosystème - CrawlerLes crawlers

Differents Crawlers Nutch

• Crawler web distribué DIH

• Contrib de Solr• Crawl DB, XML

Aperture• File, Web

Et Framework Google Enterprise Connector Manifold CF

Page 96: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Ecosystème - CrawlerManifold CF

Basé sur « Connector Framework » développé par Karl Wright pour la MetaCarta ApplianceDonné à l’Apache Software Foundation en 2009 (première version 2011)Mai 2012 : sortie d’incubationVersion actuelle 1.5.1 (Février 2014)

Page 97: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Ecosystème - CrawlerManifold CF

Crawling incrémentalGère les autorisationsConfiguration par UI et APICréé pour SolrArchitecture en mode plugin

Page 98: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Differents connecteurs pour : Content Repositories :

• SharePoint• Windows Share• CMIS (Alfresco)• DB• RSS• Wiki

Authorities:• AD• LDAP

Output repositories :• Solr• Elastic Search

Ecosystème - CrawlerManifold CF

Page 99: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

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

Ecosystème - CrawlerManifold CF

Pull Agent

Page 100: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

2 composants principaux: Authority service:

• Contient les authority connectors• Liste de tous les tokens pour l’utilisateur courant

Ecosystème - CrawlerManifold CF

Page 101: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

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

Ecosystème - CrawlerManifold CF

Page 102: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Configuration côté Manifold CF Configuration du connecteur JCIFS Configuration du connecteur AD Configuration du connecteur Solr

Ecosystème - CrawlerManifold CF

Page 103: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Modification du schéma Solr Ajout de champs pour indexés les ACLs

• AllowFile, DenyFile, AllowDirectory, DenyDirectory… Ajout d’un plugin à Solr (MCF Search Plugin) pour interroger Manifold CF pour

obtenir les infos d’utilisateur

Ecosystème - CrawlerManifold CF

Page 104: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Manifold CF

AD

Manifold CF pull Agent

ConnecteurJCIFS

Connecteur Solr

Docs andaccess tokens

Get User access token

Repositories Authorities

Ecosystème - CrawlerManifold CF

OutputSolr

MCF Search Plugin

Indexation

Manifold CF authority service

Connecteur AD

Windows Share

Page 105: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Manifold CF

AD

Manifold CF pull Agent

ConnecteurJCIFS

Connecteur Solr

Docs andaccess tokens

Get User access token

Repositories Authorities

Ecosystème - CrawlerManifold CF

Output

Windows Share

Solr

MCF Search Plugin

Requête

Manifold CF authority service

Connecteur AD

Front End Search authentifiéFiltre les docs suivant leur ACLs et les infos

d’utilisateurRésultats autorisés

Page 106: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Des questions???

Page 107: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de SolrSolr et son écosystème Crawling des données Exemple de UI Outils sémantiques Hadoop

Page 108: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Ecosysteme - UIAjaxFranceLabs

Inspiré de AjaxSolrClient Javascript/AjaxFournit plusieurs composants: Un Manager

• Gère la connexion avec le serveur Et des widgets

• Composant graphique et logique

Page 109: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Ecosysteme - UIAjaxFranceLabs

Manager

SearchBarWidget

ResultWidget

FacetWidget

Page 110: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

ManifoldCF + Solr + Ajax FranceLabsDemo

Démo !

Page 111: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de SolrSolr et son écosystème Crawling des données Exemple de UI Outils sémantiques Hadoop

Page 112: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Ecosysteme

Le sémantique n‘est pas le travail de SolrFait seulement de la recherche full-text (mais le fait bien )Solr Il existe des plugins pour cela

• UIMA• GATE• OpenNLP

Sémantique

Page 113: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeSé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

Page 114: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeUIMA

Ex : OpenNLP Coté indexation ou requêtage Part of speech

• Verbe nom… Extraction d’entités

• Lieu• Personne

Page 115: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeNatural Langage Processing

Solr + OpenNLP + custom code => outils de recherche en langage naturelVoir livre « Taming Text » de Grant Ingersoll

Page 116: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Plan

Présentation de SolrSolr et son écosystème Crawling des données Exemple de UI Outils sémantiques Hadoop

Page 117: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

Créé par Doug Cutting Framework open sourceInspiré par les papiers sur Google Map Reduceet Google File System

Page 118: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

Traiter des grands volumes de données en un minimum de tempsStocker des immenses volumes de donnéesFonctionne sur machines de configuration faible et peu coûteuses

Page 119: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

Architecture (très) simplifiée de Hadoop

Nœud 1 Nœud 3Nœud 2 Nœud 4Couche Traitement (Map Reduce)

Couche Stockage (HDFS)

Page 120: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

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)

Page 121: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

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

Page 122: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Clé1 : Val1Clé2 : Val2Clé3 : Val3Clé4 : Val4

EcosystemeHadoop

Mapper Prend des données en entrée Et les transforme en paire de clé valeur

Mapper

Page 123: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Clé 1 : Val1Clé 2 : Val2Clé 1 : Val3Clé 2 : Val4

Reducer Combine les valeurs ayant la même clé

Clé1 : Val5Clé2 : Val6

Reducer

EcosystemeHadoop

Page 124: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

Un exemple simple? On a en entrée plusieurs textes On veut compter le nombre d’occurrence

des mots De manière distribuée En utilisant un job Map Reduce

DatafariDatafari est notre solution open source de recherche d'entreprises, basée sur Lucene, Solr, et le framework de connecteurs Apache ManifoldCF.

SolrApache 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.

LuceneApache Lucene est un moteur de recherche et d'indexation, en open source.

Page 125: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Apache : 4Solr : 2Lucene : 3…

Apache : 1Apache : 1Solr : 1Lucene : 1…

Apache : 1Solr : 1Lucene : 1…

Apache : 1Lucene : 1…

EcosystemeHadoop

DatafariDatafari est notre solution open source de recherche d'entreprises, basée sur Lucene, Solr, et le framework de connecteurs Apache ManifoldCF.

SolrApache 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.

LuceneApache Lucene est un moteur de recherche et d'indexation, en open source.

Reducer

Mapper

Mapper

Mapper

Page 126: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

Distribution du l’algo en Map Reduce

Apache : 13 Apache : 44 Apache : 2Lucene : 10

Open : 19Solr : 10 Solr : 10 Manifold : 1Nœud 1 Nœud 3Nœud 2 Nœud 4

Page 127: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Opération Map sur les documents sur chacun des noeuds

EcosystemeHadoop

Apache : 1Apache : 1

Apache : 1 Apache : 1Lucene : 1

Open : 1Solr : 1 Solr : 1

Solr : 1Manifold : 1

Source : 1Source : 1

Nœud 1 Nœud 3Nœud 2 Nœud 4Map Map Map Map

Page 128: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

Echange des données entre les nœud (shuffle)

Nœud 1 Nœud 3Nœud 2 Nœud 4

Apache : 1Apache : 1

Apache : 1 Apache : 1Lucene : 1 Open : 1

Solr : 1 Solr : 1Solr : 1

Manifold : 1

Source : 1Source : 1

Page 129: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Lucene : 1Manifold : 1Open : 1

Opération de Reduce sur chacun des noeuds

EcosystemeHadoop

Apache : 1Apache : 1Apache : 1Apache : 1

Lucene : 1

Open : 1

Solr : 1Solr : 1Solr : 1

Manifold : 1

Source : 1

Source : 1

Apache : 4 Solr : 3 Source : 2Nœud 4Reduce

Nœud 3Reduce

Nœud 1Reduce

Nœud 2Reduce

Page 130: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Créé par Doug CuttingCrawler WebPermet de crawler un large volume de donnéesBasé sur Hadoop

EcosystemeNutch

Page 131: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Projet ApacheSurcouche d’HadoopPermet de déployer sur Hadoop des traitements tel que: Identification de language Extraction de contenu (Tika) Pipeline UIMA

EcosystemeBehemoth

Page 132: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

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

EcosystemeSolr directement couplé avec Hadoop

Page 133: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Calcul du scoring des docs Ex: PageRank calculé par le Google Map/Reduce

EcosystemeExemples d’utilisation d’Hadoop

Web

Google Map/Reduce (≠ Hadoop

Mapreduce) :Calcul PageRank

Moteur de recherche (≠ Lucene Solr)

Page 134: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Calcul de recommandation Ex: Linkedin

EcosystemeExemples d’utilisation d’Hadoop

Page 135: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Ecosysteme

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

Exemples d’utilisation d’Hadoop

Page 136: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

EcosystemeHadoop

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

Page 137: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Des questions???

Page 138: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Contact

Merci!!!

Page 139: Solr, c'est simple et Big Data ready - prez au Lyon jug Fév 2014

Contact

Site web : www.francelabs.com

Email : [email protected]

Twitter : Francelabs