SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Migrer une application 
existante vers Elasticsearch 
Michaël Vachette
Hier …
Architecture 
Nuxeo ! 
Platform! 
SQL ! 
Database! 
FS!
Montée en charge 
Nuxeo ! 
Platform! 
SQL ! 
Database! 
FS! 
Nuxeo ! 
Platform! 
Nuxeo ! 
Platform! 
Cluster
Montée en charge 
Nuxeo ! 
Platform! 
SQL ! 
Database! 
FS! 
Nuxeo ! 
Platform! 
Nuxeo ! 
Platform! 
RAM/CPU 
Cluster
Montée en charge 
Cluster 
Nuxeo ! 
Platform! 
SQL ! 
Database! 
FS! 
Nuxeo ! 
Platform! 
Nuxeo ! 
Platform! 
RAM/CPU Distribuer les I/0
Montée en charge 
Cluster 
Nuxeo ! 
Platform! 
SQL ! 
Database! 
FS! 
Nuxeo ! 
Platform! 
Nuxeo ! 
Platform! 
RAM/CPU Distribuer les I/0
DB: Les opérations coûteuses 
• Déplacer/copier/supprim 
er une arborescence
DB: Les opérations coûteuses 
• Déplacer/copier/supprim 
er une arborescence Ponctuel!
DB: Les opérations coûteuses 
• Déplacer/copier/supprim 
er une arborescence 
• La recherche 
Ponctuel!
DB: Les opérations coûteuses 
• Déplacer/copier/supprim 
er une arborescence 
• La recherche 
Ponctuel! 
Régulier!
Recherche: limitations 
• Pas de possibilité de distribuer les requêtes su 
r plusieurs bases de données
Recherche: limitations 
• Pas de possibilité de distribuer les requêtes su 
r plusieurs bases de données 
• Toutes les bases de données ne proposent pa 
s les mêmes fonctionnalités de recherche
Recherche: limitations 
• Pas de possibilité de distribuer les requêtes su 
r plusieurs bases de données 
• Toutes les bases de données ne proposent pa 
s les mêmes fonctionnalités de recherche 
• Pas de facettes, synonymes, mots proches …
La solution: 
Intégrer un moteur 
de recherche
elasticsearch : c’est quoi ? 
• Un moteur de recherche open-source
elasticsearch : c’est quoi ? 
• Un moteur de recherche open-source 
• Architecture distribuée
elasticsearch : c’est quoi ? 
• Un moteur de recherche open-source 
• Architecture distribuée 
• Pas de schéma de données
elasticsearch : c’est quoi ? 
• Un moteur de recherche open-source 
• Architecture distribuée 
• Pas de schéma de données 
• JSON over HTTP pour la communication
Architecture 
Nuxeo ! 
Platform! 
SQL ! 
Database! 
FS! 
Elasticsearch!
Montée en charge 
Nuxeo ! 
Platform! 
Elasticsearch! 
SQL ! 
Database! 
FS! 
Elasticsearch!
Montée en charge 
Nuxeo ! 
Platform! 
Elasticsearch! 
Elasticsearch! 
SQL ! 
Database! 
FS! 
Elasticsearch!
Intégration 
• Requêtes en langage NXQL
Intégration 
• Requêtes en langage NXQL 
• Réutilisation du concept de Page Provider
Intégration 
• Requêtes en langage NXQL 
• Réutilisation du concept de Page Provider 
• Intégration transparente dans les Content Vie 
ws
Intégration 
• Requêtes en langage NXQL 
• Réutilisation du concept de Page Provider 
• Intégration transparente dans les Content Vie 
ws 
• Les ACL sont indexées dans ES
Intégration 
• Requêtes en langage NXQL 
• Réutilisation du concept de Page Provider 
• Intégration transparente dans les Content Vie 
ws 
• Les ACL sont indexées dans ES 
• La configuration des index ES est indépendante 
de Nuxeo Platform
Performances
Comparaison DB / ES
Pour 1 milliard de documents
Les ajouts 
fonctionnels
Les facettes
Recherche plein texte 
La prise en compte des: 
• Caractères accentués 
• Pluriels 
• Apostrophes
Prochaines versions de Nuxeo 
• Recherche par mots proches 
• Extrait de document dans les résultats 
… en fonction des retours d’expérience et 
des demandes clients
Installation
Nuxeo 
Package Marketplace pour Nuxeo 5.8 et Nuxeo 6.0
Elasticsearch 
http://www.elasticsearch.org/ 
resources/
Configuration
Configuration 
• Configuration de Nuxeo Platform 
• Configuration de l’index nuxeo
Configuration Nuxeo Platform 
Paramètre du fichier nuxeo.conf: 
# Name of the Elasticsearch index for Nuxeo documents 
elasticsearch.indexName=nuxeo 
# Comma separated list of Elasticsearch nodes, if empty use a local in JVM node 
elasticsearch.addressList=host:9300 
# Name of the Elasticsearch cluster to join 
elasticsearch.clusterName=nuxeoCluster 
# Number of replicas (not for local node) 
elasticsearch.indexNumberOfReplicas=1 
# Number of shards (not for local node) 
elasticsearch.indexNumberOfShards=5 
# Name of the local node 
elasticsearch.nodeName=nuxeoNode
Configuration de l’index 
• Template Elasticsearch 
• Deux configurations disponibles : 
• français 
• anglais (défaut)
Configuration de l’index 
Ces ateliers sont vraiment très intéressants.
Configuration de l’index 
Ces ateliers sont vraiment très intéressants. 
Analyzer!
Configuration de l’index 
Ces ateliers sont vraiment très intéressants. 
Analyzer! 
Tokenizer! Ces ateliers sont vraiment très intéressants
Configuration de l’index 
Ces ateliers sont vraiment très intéressants. 
Analyzer! 
Tokenizer! Ces ateliers sont vraiment très intéressants 
stop words!Cet ateliers est vraiment très intéressants
Configuration de l’index 
Ces ateliers sont vraiment très intéressants. 
Analyzer! 
Tokenizer! Ces ateliers sont vraiment très intéressants 
stop words!Cet ateliers est vraiment très intéressants 
lower case ! 
stemmer! 
ateliers vraiment très intéressants 
ateli vraiment très intéressant 
ascii folding! ateli vraiment tres interessant
Commandes utiles
Elasticsearch 
Etat d'un noeud local 
curl -XGET 'http://localhost:9200/_nodes?pretty' 
curl -Method GET 'http://localhost:9200/_nodes?pretty' 
Suppression d'un index 
curl -XDELETE 'http://localhost:9200/nuxeo/' 
curl -Method DELETE 'http://localhost:9200/nuxeo/' 
Analyse d'un texte 
curl -XPOST 'http://localhost:9200/nuxeo/_analyze?analyzer=fulltext&pretty' -d {'slide'} 
curl -Method Post 'http://localhost:9200/nuxeo/_analyze?analyzer=fulltext&pretty' -d {'slide'}

Weitere ähnliche Inhalte

Was ist angesagt?

Finist JUG - Elasticsearch
Finist JUG - ElasticsearchFinist JUG - Elasticsearch
Finist JUG - ElasticsearchDavid Pilato
 
Poitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchPoitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchDavid Pilato
 
Tirer le meilleur de ses données avec ElasticSearch
Tirer le meilleur de ses données avec ElasticSearchTirer le meilleur de ses données avec ElasticSearch
Tirer le meilleur de ses données avec ElasticSearchSéven Le Mesle
 
Découverte de Elastic search
Découverte de Elastic searchDécouverte de Elastic search
Découverte de Elastic searchJEMLI Fathi
 
Tunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouriTunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouriAymen ZAAFOURI
 
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?Sébastien Prunier
 
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
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab ElasticsearchDavid Pilato
 
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
 
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...Bruno Bonnin
 
Paris data geek - Elasticsearch
Paris data geek - ElasticsearchParis data geek - Elasticsearch
Paris data geek - ElasticsearchDavid Pilato
 
Lausanne JUG - Elasticsearch
Lausanne JUG - ElasticsearchLausanne JUG - Elasticsearch
Lausanne JUG - ElasticsearchDavid Pilato
 
Elasticsearch - Esme sudria
Elasticsearch - Esme sudriaElasticsearch - Esme sudria
Elasticsearch - Esme sudriaDavid Pilato
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réellesGeoffroy Arnoud
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Khanh Maudoux
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?Sébastien Prunier
 
Atelier : Développement rapide d’une application basée surXWiki
Atelier : Développement rapide d’une application basée surXWikiAtelier : Développement rapide d’une application basée surXWiki
Atelier : Développement rapide d’une application basée surXWikiKorteby Farouk
 

Was ist angesagt? (20)

Finist JUG - Elasticsearch
Finist JUG - ElasticsearchFinist JUG - Elasticsearch
Finist JUG - Elasticsearch
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Poitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchPoitou charentes JUG - Elasticsearch
Poitou charentes JUG - Elasticsearch
 
Tirer le meilleur de ses données avec ElasticSearch
Tirer le meilleur de ses données avec ElasticSearchTirer le meilleur de ses données avec ElasticSearch
Tirer le meilleur de ses données avec ElasticSearch
 
Découverte de Elastic search
Découverte de Elastic searchDécouverte de Elastic search
Découverte de Elastic search
 
Tunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouriTunis big data_meetup__21_nov2015__aymenzaafouri
Tunis big data_meetup__21_nov2015__aymenzaafouri
 
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
 
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)
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 
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
 
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
 
Paris data geek - Elasticsearch
Paris data geek - ElasticsearchParis data geek - Elasticsearch
Paris data geek - Elasticsearch
 
Lausanne JUG - Elasticsearch
Lausanne JUG - ElasticsearchLausanne JUG - Elasticsearch
Lausanne JUG - Elasticsearch
 
Elasticsearch - Esme sudria
Elasticsearch - Esme sudriaElasticsearch - Esme sudria
Elasticsearch - Esme sudria
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
Hadoop unit
Hadoop unitHadoop unit
Hadoop unit
 
Hadoop et son écosystème - v2
Hadoop et son écosystème - v2Hadoop et son écosystème - v2
Hadoop et son écosystème - v2
 
MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?MongoDB et Elasticsearch, meilleurs ennemis ?
MongoDB et Elasticsearch, meilleurs ennemis ?
 
Atelier : Développement rapide d’une application basée surXWiki
Atelier : Développement rapide d’une application basée surXWikiAtelier : Développement rapide d’une application basée surXWiki
Atelier : Développement rapide d’une application basée surXWiki
 
Hadoop unit
Hadoop unitHadoop unit
Hadoop unit
 

Andere mochten auch

Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012Sellami Ahmed
 
Elasticsearch in 15 minutes
Elasticsearch in 15 minutesElasticsearch in 15 minutes
Elasticsearch in 15 minutesDavid Pilato
 
Nantes JUG - Elasticsearch
Nantes JUG - ElasticsearchNantes JUG - Elasticsearch
Nantes JUG - ElasticsearchDavid Pilato
 
Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le M...
Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le M...Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le M...
Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le M...Publicis Sapient Engineering
 
l'Art du marketing - les Echos PwC
l'Art du marketing - les Echos PwCl'Art du marketing - les Echos PwC
l'Art du marketing - les Echos PwCVincent Haguet
 
France vs Allemagne : Le match des Web Analystes
France vs Allemagne : Le match des Web AnalystesFrance vs Allemagne : Le match des Web Analystes
France vs Allemagne : Le match des Web AnalystesAT Internet
 
Proposta Modificació
Proposta ModificacióProposta Modificació
Proposta Modificacióucave
 
Guide pratique-dematerialisation-mp (DAJ) http://www.economie.gouv.fr/directi...
Guide pratique-dematerialisation-mp (DAJ) http://www.economie.gouv.fr/directi...Guide pratique-dematerialisation-mp (DAJ) http://www.economie.gouv.fr/directi...
Guide pratique-dematerialisation-mp (DAJ) http://www.economie.gouv.fr/directi...Ministère de l'Économie et des Finances
 
A la découverte de Svalbard - Un projet mythique, mais controversé 7/8
A la découverte de Svalbard - Un projet mythique, mais controversé 7/8A la découverte de Svalbard - Un projet mythique, mais controversé 7/8
A la découverte de Svalbard - Un projet mythique, mais controversé 7/8greenetvert
 
Presentacion david invisimals
Presentacion david invisimalsPresentacion david invisimals
Presentacion david invisimalsGuadalinfo Viznar
 
Desarrollo Social Desde Las Estrategias De ParticipacióN Ciudadanav3slide
Desarrollo Social Desde Las Estrategias De ParticipacióN Ciudadanav3slideDesarrollo Social Desde Las Estrategias De ParticipacióN Ciudadanav3slide
Desarrollo Social Desde Las Estrategias De ParticipacióN Ciudadanav3slideIrina Francioni
 
[FR] Présentation Corporate Spotter 2013
[FR] Présentation Corporate Spotter 2013[FR] Présentation Corporate Spotter 2013
[FR] Présentation Corporate Spotter 2013Celine Molina
 
Weekly actions 19 novembre 2010
Weekly actions 19 novembre 2010Weekly actions 19 novembre 2010
Weekly actions 19 novembre 2010Cherradi -
 
Proposta Modificació R E Aa Vv
Proposta Modificació R E Aa VvProposta Modificació R E Aa Vv
Proposta Modificació R E Aa Vvucave
 
Vincent van-gogh
Vincent van-goghVincent van-gogh
Vincent van-goghLuc Fayard
 

Andere mochten auch (20)

Presentation pfe 2012
Presentation pfe 2012Presentation pfe 2012
Presentation pfe 2012
 
IPTV
IPTVIPTV
IPTV
 
Elasticsearch in 15 minutes
Elasticsearch in 15 minutesElasticsearch in 15 minutes
Elasticsearch in 15 minutes
 
Nantes JUG - Elasticsearch
Nantes JUG - ElasticsearchNantes JUG - Elasticsearch
Nantes JUG - Elasticsearch
 
Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le M...
Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le M...Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le M...
Open XKE - Tirer le meilleur de ses données avec Elasticsearch par Séven le M...
 
Faworki
FaworkiFaworki
Faworki
 
l'Art du marketing - les Echos PwC
l'Art du marketing - les Echos PwCl'Art du marketing - les Echos PwC
l'Art du marketing - les Echos PwC
 
France vs Allemagne : Le match des Web Analystes
France vs Allemagne : Le match des Web AnalystesFrance vs Allemagne : Le match des Web Analystes
France vs Allemagne : Le match des Web Analystes
 
Equipo de ayuda
Equipo de ayudaEquipo de ayuda
Equipo de ayuda
 
Proposta Modificació
Proposta ModificacióProposta Modificació
Proposta Modificació
 
David Y Goliat3
David Y Goliat3David Y Goliat3
David Y Goliat3
 
Guide pratique-dematerialisation-mp (DAJ) http://www.economie.gouv.fr/directi...
Guide pratique-dematerialisation-mp (DAJ) http://www.economie.gouv.fr/directi...Guide pratique-dematerialisation-mp (DAJ) http://www.economie.gouv.fr/directi...
Guide pratique-dematerialisation-mp (DAJ) http://www.economie.gouv.fr/directi...
 
A la découverte de Svalbard - Un projet mythique, mais controversé 7/8
A la découverte de Svalbard - Un projet mythique, mais controversé 7/8A la découverte de Svalbard - Un projet mythique, mais controversé 7/8
A la découverte de Svalbard - Un projet mythique, mais controversé 7/8
 
Presentacion david invisimals
Presentacion david invisimalsPresentacion david invisimals
Presentacion david invisimals
 
Desarrollo Social Desde Las Estrategias De ParticipacióN Ciudadanav3slide
Desarrollo Social Desde Las Estrategias De ParticipacióN Ciudadanav3slideDesarrollo Social Desde Las Estrategias De ParticipacióN Ciudadanav3slide
Desarrollo Social Desde Las Estrategias De ParticipacióN Ciudadanav3slide
 
[FR] Présentation Corporate Spotter 2013
[FR] Présentation Corporate Spotter 2013[FR] Présentation Corporate Spotter 2013
[FR] Présentation Corporate Spotter 2013
 
Weekly actions 19 novembre 2010
Weekly actions 19 novembre 2010Weekly actions 19 novembre 2010
Weekly actions 19 novembre 2010
 
Proposta Modificació R E Aa Vv
Proposta Modificació R E Aa VvProposta Modificació R E Aa Vv
Proposta Modificació R E Aa Vv
 
Vincent van-gogh
Vincent van-goghVincent van-gogh
Vincent van-gogh
 
Verbes en er
Verbes en erVerbes en er
Verbes en er
 

Ähnlich wie Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop

Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésNeo4j
 
Architectures réparties en environnement web
Architectures réparties en environnement webArchitectures réparties en environnement web
Architectures réparties en environnement webAmaury Bouchard
 
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataJSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataGUSS
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTCHAKER ALLAOUI
 
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataJournées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataDavid Joubert
 
Nuxeo Platform 6.0 : les nouveautés - Novembre 2014
Nuxeo Platform 6.0 : les nouveautés - Novembre 2014Nuxeo Platform 6.0 : les nouveautés - Novembre 2014
Nuxeo Platform 6.0 : les nouveautés - Novembre 2014Nuxeo
 
DevCon 2 ; Infra as Code avec Azure
DevCon 2  ; Infra as Code avec AzureDevCon 2  ; Infra as Code avec Azure
DevCon 2 ; Infra as Code avec AzureMichel HUBERT
 
Meetup Drupal Paris : Connexion Drupal et Elasticsearch
Meetup Drupal Paris : Connexion Drupal et Elasticsearch Meetup Drupal Paris : Connexion Drupal et Elasticsearch
Meetup Drupal Paris : Connexion Drupal et Elasticsearch ALTER WAY
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - ElasticsearchDavid Pilato
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015Tarik Zakaria Benmerar
 
Séminaire Inria IST - Référentiels et interoperabilité (2)
Séminaire Inria IST - Référentiels et interoperabilité (2)Séminaire Inria IST - Référentiels et interoperabilité (2)
Séminaire Inria IST - Référentiels et interoperabilité (2)Antoine Isaac
 
Apache Zeppelin @DevoxxFR 2016
Apache Zeppelin @DevoxxFR 2016Apache Zeppelin @DevoxxFR 2016
Apache Zeppelin @DevoxxFR 2016Duyhai Doan
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm
 
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureNicolas Georgeault
 

Ähnlich wie Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop (20)

Digital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautésDigital GraphTour Paris - Neo4j 4.0, les nouveautés
Digital GraphTour Paris - Neo4j 4.0, les nouveautés
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
Architectures réparties en environnement web
Architectures réparties en environnement webArchitectures réparties en environnement web
Architectures réparties en environnement web
 
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big DataJSS2014 – Hive ou la convergence entre datawarehouse et Big Data
JSS2014 – Hive ou la convergence entre datawarehouse et Big Data
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
 
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big DataJournées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
Journées SQL 2014 - Hive ou la convergence entre datawarehouse et Big Data
 
Nuxeo Platform 6.0 : les nouveautés - Novembre 2014
Nuxeo Platform 6.0 : les nouveautés - Novembre 2014Nuxeo Platform 6.0 : les nouveautés - Novembre 2014
Nuxeo Platform 6.0 : les nouveautés - Novembre 2014
 
DevCon 2 ; Infra as Code avec Azure
DevCon 2  ; Infra as Code avec AzureDevCon 2  ; Infra as Code avec Azure
DevCon 2 ; Infra as Code avec Azure
 
Meetup Drupal Paris : Connexion Drupal et Elasticsearch
Meetup Drupal Paris : Connexion Drupal et Elasticsearch Meetup Drupal Paris : Connexion Drupal et Elasticsearch
Meetup Drupal Paris : Connexion Drupal et Elasticsearch
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - Elasticsearch
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
Séminaire Inria IST - Référentiels et interoperabilité (2)
Séminaire Inria IST - Référentiels et interoperabilité (2)Séminaire Inria IST - Référentiels et interoperabilité (2)
Séminaire Inria IST - Référentiels et interoperabilité (2)
 
Apache Zeppelin @DevoxxFR 2016
Apache Zeppelin @DevoxxFR 2016Apache Zeppelin @DevoxxFR 2016
Apache Zeppelin @DevoxxFR 2016
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Introduction spark
Introduction sparkIntroduction spark
Introduction spark
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
BreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec AzureBreizhCamp - Drupal7 dans le cloud avec Azure
BreizhCamp - Drupal7 dans le cloud avec Azure
 

Mehr von Nuxeo

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesNuxeo
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureNuxeo
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicNuxeo
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoNuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportNuxeo
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM ContinuumNuxeo
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021Nuxeo
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteNuxeo
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoNuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationNuxeo
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Nuxeo
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionNuxeo
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Nuxeo
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMNuxeo
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...Nuxeo
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondNuxeo
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMNuxeo
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesNuxeo
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsNuxeo
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceNuxeo
 

Mehr von Nuxeo (20)

Own the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage CompaniesOwn the Digital Shelf Strategies Food and Beverage Companies
Own the Digital Shelf Strategies Food and Beverage Companies
 
How DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain FutureHow DAM Librarians Can Get Ready for the Uncertain Future
How DAM Librarians Can Get Ready for the Uncertain Future
 
How Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a PandemicHow Insurers Fueled Transformation During a Pandemic
How Insurers Fueled Transformation During a Pandemic
 
Manage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and NuxeoManage your Content at Scale with MongoDB and Nuxeo
Manage your Content at Scale with MongoDB and Nuxeo
 
Accelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to SupportAccelerate the Digital Supply Chain From Idea to Support
Accelerate the Digital Supply Chain From Idea to Support
 
Where are you in the DAM Continuum
Where are you in the DAM ContinuumWhere are you in the DAM Continuum
Where are you in the DAM Continuum
 
Customer Experience in 2021
Customer Experience in 2021Customer Experience in 2021
Customer Experience in 2021
 
L’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovanteL’IA personnalisée, clé d’une gestion de l’information innovante
L’IA personnalisée, clé d’une gestion de l’information innovante
 
Gérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et NuxeoGérer ses contenus avec MongoDB et Nuxeo
Gérer ses contenus avec MongoDB et Nuxeo
 
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluationLe DAM en 2021 : Tendances, points clés et critères d'évaluation
Le DAM en 2021 : Tendances, points clés et critères d'évaluation
 
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
Enabling Digital Transformation Amidst a Global Pandemic | Low-Code, Cloud, A...
 
Elevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the CompetitionElevate your Customer's Experience and Stay Ahead of the Competition
Elevate your Customer's Experience and Stay Ahead of the Competition
 
Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience Driving Brand Loyalty Through Superior Customer Experience
Driving Brand Loyalty Through Superior Customer Experience
 
Drive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAMDrive Enterprise Speed and Scale with A Cloud-Native DAM
Drive Enterprise Speed and Scale with A Cloud-Native DAM
 
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
The Big Picture: the Role of Video, Photography, and Content in Enhancing the...
 
How Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and BeyondHow Creatives Are Getting Creative in 2020 and Beyond
How Creatives Are Getting Creative in 2020 and Beyond
 
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAMDigitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
Digitalisation : Améliorez la collaboration et l’expérience client grâce au DAM
 
Reimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof TechnologiesReimagine Your Claims Process with Future-Proof Technologies
Reimagine Your Claims Process with Future-Proof Technologies
 
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifsComment le Centre Hospitalier Laborit dématérialise ses processus administratifs
Comment le Centre Hospitalier Laborit dématérialise ses processus administratifs
 
Accelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial IntelligenceAccelerating the Packaging Design Process with Artificial Intelligence
Accelerating the Packaging Design Process with Artificial Intelligence
 

Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop

  • 1. Migrer une application existante vers Elasticsearch Michaël Vachette
  • 3. Architecture Nuxeo ! Platform! SQL ! Database! FS!
  • 4. Montée en charge Nuxeo ! Platform! SQL ! Database! FS! Nuxeo ! Platform! Nuxeo ! Platform! Cluster
  • 5. Montée en charge Nuxeo ! Platform! SQL ! Database! FS! Nuxeo ! Platform! Nuxeo ! Platform! RAM/CPU Cluster
  • 6. Montée en charge Cluster Nuxeo ! Platform! SQL ! Database! FS! Nuxeo ! Platform! Nuxeo ! Platform! RAM/CPU Distribuer les I/0
  • 7. Montée en charge Cluster Nuxeo ! Platform! SQL ! Database! FS! Nuxeo ! Platform! Nuxeo ! Platform! RAM/CPU Distribuer les I/0
  • 8. DB: Les opérations coûteuses • Déplacer/copier/supprim er une arborescence
  • 9. DB: Les opérations coûteuses • Déplacer/copier/supprim er une arborescence Ponctuel!
  • 10. DB: Les opérations coûteuses • Déplacer/copier/supprim er une arborescence • La recherche Ponctuel!
  • 11. DB: Les opérations coûteuses • Déplacer/copier/supprim er une arborescence • La recherche Ponctuel! Régulier!
  • 12. Recherche: limitations • Pas de possibilité de distribuer les requêtes su r plusieurs bases de données
  • 13. Recherche: limitations • Pas de possibilité de distribuer les requêtes su r plusieurs bases de données • Toutes les bases de données ne proposent pa s les mêmes fonctionnalités de recherche
  • 14. Recherche: limitations • Pas de possibilité de distribuer les requêtes su r plusieurs bases de données • Toutes les bases de données ne proposent pa s les mêmes fonctionnalités de recherche • Pas de facettes, synonymes, mots proches …
  • 15. La solution: Intégrer un moteur de recherche
  • 16. elasticsearch : c’est quoi ? • Un moteur de recherche open-source
  • 17. elasticsearch : c’est quoi ? • Un moteur de recherche open-source • Architecture distribuée
  • 18. elasticsearch : c’est quoi ? • Un moteur de recherche open-source • Architecture distribuée • Pas de schéma de données
  • 19. elasticsearch : c’est quoi ? • Un moteur de recherche open-source • Architecture distribuée • Pas de schéma de données • JSON over HTTP pour la communication
  • 20. Architecture Nuxeo ! Platform! SQL ! Database! FS! Elasticsearch!
  • 21. Montée en charge Nuxeo ! Platform! Elasticsearch! SQL ! Database! FS! Elasticsearch!
  • 22. Montée en charge Nuxeo ! Platform! Elasticsearch! Elasticsearch! SQL ! Database! FS! Elasticsearch!
  • 23. Intégration • Requêtes en langage NXQL
  • 24. Intégration • Requêtes en langage NXQL • Réutilisation du concept de Page Provider
  • 25. Intégration • Requêtes en langage NXQL • Réutilisation du concept de Page Provider • Intégration transparente dans les Content Vie ws
  • 26. Intégration • Requêtes en langage NXQL • Réutilisation du concept de Page Provider • Intégration transparente dans les Content Vie ws • Les ACL sont indexées dans ES
  • 27. Intégration • Requêtes en langage NXQL • Réutilisation du concept de Page Provider • Intégration transparente dans les Content Vie ws • Les ACL sont indexées dans ES • La configuration des index ES est indépendante de Nuxeo Platform
  • 30. Pour 1 milliard de documents
  • 33. Recherche plein texte La prise en compte des: • Caractères accentués • Pluriels • Apostrophes
  • 34. Prochaines versions de Nuxeo • Recherche par mots proches • Extrait de document dans les résultats … en fonction des retours d’expérience et des demandes clients
  • 36. Nuxeo Package Marketplace pour Nuxeo 5.8 et Nuxeo 6.0
  • 39. Configuration • Configuration de Nuxeo Platform • Configuration de l’index nuxeo
  • 40. Configuration Nuxeo Platform Paramètre du fichier nuxeo.conf: # Name of the Elasticsearch index for Nuxeo documents elasticsearch.indexName=nuxeo # Comma separated list of Elasticsearch nodes, if empty use a local in JVM node elasticsearch.addressList=host:9300 # Name of the Elasticsearch cluster to join elasticsearch.clusterName=nuxeoCluster # Number of replicas (not for local node) elasticsearch.indexNumberOfReplicas=1 # Number of shards (not for local node) elasticsearch.indexNumberOfShards=5 # Name of the local node elasticsearch.nodeName=nuxeoNode
  • 41. Configuration de l’index • Template Elasticsearch • Deux configurations disponibles : • français • anglais (défaut)
  • 42. Configuration de l’index Ces ateliers sont vraiment très intéressants.
  • 43. Configuration de l’index Ces ateliers sont vraiment très intéressants. Analyzer!
  • 44. Configuration de l’index Ces ateliers sont vraiment très intéressants. Analyzer! Tokenizer! Ces ateliers sont vraiment très intéressants
  • 45. Configuration de l’index Ces ateliers sont vraiment très intéressants. Analyzer! Tokenizer! Ces ateliers sont vraiment très intéressants stop words!Cet ateliers est vraiment très intéressants
  • 46. Configuration de l’index Ces ateliers sont vraiment très intéressants. Analyzer! Tokenizer! Ces ateliers sont vraiment très intéressants stop words!Cet ateliers est vraiment très intéressants lower case ! stemmer! ateliers vraiment très intéressants ateli vraiment très intéressant ascii folding! ateli vraiment tres interessant
  • 48. Elasticsearch Etat d'un noeud local curl -XGET 'http://localhost:9200/_nodes?pretty' curl -Method GET 'http://localhost:9200/_nodes?pretty' Suppression d'un index curl -XDELETE 'http://localhost:9200/nuxeo/' curl -Method DELETE 'http://localhost:9200/nuxeo/' Analyse d'un texte curl -XPOST 'http://localhost:9200/nuxeo/_analyze?analyzer=fulltext&pretty' -d {'slide'} curl -Method Post 'http://localhost:9200/nuxeo/_analyze?analyzer=fulltext&pretty' -d {'slide'}