migrer une application existante vers elasticsearch - nuxeo tour 2014 - workshop
DESCRIPTION
Atelier Deep Dive Nuxeo Tour 2014 par Michael VachetteTRANSCRIPT
![Page 1: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/1.jpg)
Migrer une application existante vers Elasticsearch Michaël Vachette
![Page 2: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/2.jpg)
Hier …
![Page 3: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/3.jpg)
Architecture
Nuxeo !Platform!
SQL !Database! FS!
![Page 4: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/4.jpg)
Montée en charge
Nuxeo !Platform!
SQL !Database! FS!
Nuxeo !Platform!
Nuxeo !Platform!
Cluster
![Page 5: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/5.jpg)
Montée en charge
Nuxeo !Platform!
SQL !Database! FS!
Nuxeo !Platform!
Nuxeo !Platform!
RAM/CPU
Cluster
![Page 6: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/6.jpg)
Montée en charge
Nuxeo !Platform!
SQL !Database! FS!
Nuxeo !Platform!
Nuxeo !Platform!
RAM/CPU Distribuer les I/0
Cluster
![Page 7: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/7.jpg)
Montée en charge
Nuxeo !Platform!
SQL !Database! FS!
Nuxeo !Platform!
Nuxeo !Platform!
RAM/CPU Distribuer les I/0
Cluster
![Page 8: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/8.jpg)
DB: Les opérations coûteuses
• Déplacer/copier/supprimer une arborescence
![Page 9: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/9.jpg)
DB: Les opérations coûteuses
• Déplacer/copier/supprimer une arborescence Ponctuel!
![Page 10: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/10.jpg)
DB: Les opérations coûteuses
• Déplacer/copier/supprimer une arborescence
• La recherche
Ponctuel!
![Page 11: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/11.jpg)
DB: Les opérations coûteuses
• Déplacer/copier/supprimer une arborescence
• La recherche
Ponctuel!
Régulier!
![Page 12: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/12.jpg)
Recherche: limitations
• Pas de possibilité de distribuer les requêtes sur plusieurs bases de données
![Page 13: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/13.jpg)
Recherche: limitations
• Pas de possibilité de distribuer les requêtes sur plusieurs bases de données
• Toutes les bases de données ne proposent pas les mêmes fonctionnalités de recherche
![Page 14: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/14.jpg)
Recherche: limitations
• Pas de possibilité de distribuer les requêtes sur plusieurs bases de données
• Toutes les bases de données ne proposent pas les mêmes fonctionnalités de recherche
• Pas de facettes, synonymes, mots proches …
![Page 15: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/15.jpg)
La solution:
Intégrer un moteur de recherche
![Page 16: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/16.jpg)
elasticsearch : c’est quoi ?
• Un moteur de recherche open-source
![Page 17: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/17.jpg)
elasticsearch : c’est quoi ?
• Un moteur de recherche open-source
• Architecture distribuée
![Page 18: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/18.jpg)
elasticsearch : c’est quoi ?
• Un moteur de recherche open-source
• Architecture distribuée
• Pas de schéma de données
![Page 19: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/19.jpg)
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
![Page 20: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/20.jpg)
Architecture
Nuxeo !Platform!
SQL !Database! FS!
Elasticsearch!
![Page 21: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/21.jpg)
Montée en charge
Nuxeo !Platform!
SQL !Database! FS!
Elasticsearch!
Elasticsearch!
![Page 22: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/22.jpg)
Montée en charge
Nuxeo !Platform!
SQL !Database! FS!
Elasticsearch!
Elasticsearch!
Elasticsearch!
![Page 23: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/23.jpg)
Intégration • Requêtes en langage NXQL
![Page 24: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/24.jpg)
Intégration • Requêtes en langage NXQL
• Réutilisation du concept de Page Provider
![Page 25: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/25.jpg)
Intégration • Requêtes en langage NXQL
• Réutilisation du concept de Page Provider
• Intégration transparente dans les Content Views
![Page 26: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/26.jpg)
Intégration • Requêtes en langage NXQL
• Réutilisation du concept de Page Provider
• Intégration transparente dans les Content Views
• Les ACL sont indexées dans ES
![Page 27: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/27.jpg)
Intégration • Requêtes en langage NXQL
• Réutilisation du concept de Page Provider
• Intégration transparente dans les Content Views
• Les ACL sont indexées dans ES
• La configuration des index ES est indépendante de Nuxeo Platform
![Page 28: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/28.jpg)
Performances
![Page 29: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/29.jpg)
Comparaison DB / ES
![Page 30: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/30.jpg)
Pour 1 milliard de documents
![Page 31: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/31.jpg)
Les ajouts fonctionnels
![Page 32: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/32.jpg)
Les facettes
![Page 33: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/33.jpg)
Recherche plein texte
La prise en compte des:
• Caractères accentués
• Pluriels
• Apostrophes
![Page 34: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/34.jpg)
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
![Page 35: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/35.jpg)
Installation
![Page 36: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/36.jpg)
Nuxeo
Package Marketplace pour Nuxeo 5.8 et Nuxeo 6.0
![Page 37: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/37.jpg)
Elasticsearch
http://www.elasticsearch.org/resources/
![Page 38: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/38.jpg)
Configuration
![Page 39: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/39.jpg)
Configuration
• Configuration de Nuxeo Platform
• Configuration de l’index nuxeo
![Page 40: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/40.jpg)
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
![Page 41: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/41.jpg)
Configuration de l’index
• Template Elasticsearch
• Deux configurations disponibles : • français
• anglais (défaut)
![Page 42: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/42.jpg)
Configuration de l’index
Ces ateliers sont vraiment très intéressants.
![Page 43: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/43.jpg)
Configuration de l’index
Ces ateliers sont vraiment très intéressants.
Analyzer!
![Page 44: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/44.jpg)
Configuration de l’index
Ces ateliers sont vraiment très intéressants.
Analyzer!Tokenizer! Ces ateliers sont vraiment très intéressants
![Page 45: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/45.jpg)
Configuration de l’index
Ces ateliers sont vraiment très intéressants.
Analyzer!Tokenizer! Ces ateliers sont vraiment très intéressants
stop words! ateliers vraiment très intéressants Cet est
![Page 46: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/46.jpg)
Configuration de l’index
Ces ateliers sont vraiment très intéressants.
Analyzer!Tokenizer! Ces ateliers sont 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
stop words! ateliers vraiment très intéressants Cet est
![Page 47: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/47.jpg)
Commandes utiles
![Page 48: Migrer une application existante vers Elasticsearch - Nuxeo Tour 2014 - workshop](https://reader033.vdocuments.us/reader033/viewer/2022051323/549a49ebb47959514d8b59b9/html5/thumbnails/48.jpg)
Elasticsearch
Etat d'un nœud 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'}