Elasticsearch

16 réponses
AuteurMessage

ddpetit |
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 12/08/2016 à 22:07

Juste un petit message pour savoir si certains d'entre vous ont déjà utilisé Elasticsearch sur un de leur projet ?

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 13/08/2016 à 01:32

En test oui, en prod non.

Shain | Yoann
Membre

Photo de Shain

Inscrit le : 10/05/2005

# Le 13/08/2016 à 14:34

Oui, nous l'utilisons en prod pour la recherche et le "clustering" des points sur https://fr.chargemap.com.Ouvrir dans une nouvelle fenetre Nous prévoyons de l'utiliser également pour notre système de BI.

Niveau performances, c'est top. Le plus pénible c'est de bien faire la synchro entre la base de données PostgreSQL et l'index d'Elasticsearch pour que les deux n'aient pas d'incohérence.

[ Shain ]
http://www.automobile-propre.comOuvrir dans une nouvelle fenetre - http://fr.chargemap.comOuvrir dans une nouvelle fenetre - http://superthemes.comOuvrir dans une nouvelle fenetre

ddpetit | Damien
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 13/08/2016 à 16:09

Qu'est-ce que ça t'apporte Shain ? Pourquoi utiliser elasticsearch plutôt qu'une autre solution par exemple home made ?

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

acti | Stéphane
Modérateur

Photo de acti

Inscrit le : 13/11/2005

# Le 13/08/2016 à 16:16

Avec du "queuing" (RabbitMQ ou autre) on peut facilement garder la synchro entre les deux systèmes. On utilise RabbitMQ pour faire pas mal de tâches en ce sens. Après il faut garder une commande de resynchro totale au cas où.
Pour la recherche, on utilise SphinxSearch.

Stéphane

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 13/08/2016 à 18:48

Je suis plus à l'aise avec SphinxSearch (et Gearman pour le "queuing"), mais ça reste proche.
Pourquoi cette question ddpetit ?

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tonguide | Jeremy
Modérateur

 

Inscrit le : 09/05/2005

# Le 14/08/2016 à 00:27

Pour avoir une perf descente avec du "home made" je te souhaite quand même bien du courage, sans parler de la compréhension du langage ...

SphinxSearch est plus accessible mais moins puissant (moins de fonctionnalité, doc au lance pierre), mais je pense que pour énormément de besoin à notre niveau, il suffit très largement, et comme c'est une syntaxe "SQL", tu peux même garder tes outils. Sur ce forum, il y en a qui forme pas mal pour l'utiliser ;)

ElasticSearch c'est la solution en vogue et très puissante, assez complexe à prendre en main mais je pense que tu trouveras forcement plus d'aide sur les forums et Q&R (anglais). Il suffit de regarder la liste des clients pour comprendre le succès du produit, tel que FB, ebay, github, netflix, salesforce etc.

ddpetit | Damien
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 14/08/2016 à 12:03

J'ai prévu à la rentrée une refonte de brico avec une partie qui me tient à coeur : mieux organiser les produits.

La recherche n'est pas très bien faite sur prestashop, la navigation à facettes mérite un système plus efficace et donc je réfléchis à la meilleure façon de gérer la recherche sur le site. J'avais entendu parler de elasticsearch par hasard, et avant d'approfondir, je voulais avoir des avis.

Voici quelques paramètres importants :

- Les caractéristiques des produits sont très différentes selon les catégories produits (exemple : sur un nettoyeur haute pression on va avoir la vitesse de rotation de la pompe qui est importante ; par contre pour une clé à fourche ça va être la taille de l'écrou ...)

- Je compte utiliser la navigation à facettes pour créer des pages supplémentaires indexables avec du contenu spécifique. Certains filtres seront donc indexables par google et d'autres non.

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

PyRoFlo | Florent
Modérateur

Photo de PyRoFlo

Inscrit le : 09/05/2005

# Le 14/08/2016 à 14:53

ES semble bien adapté à tes besoins. Les facettes typiquement c'est LA feature pour laquelle on l'utilise en premier.

Regarde le site de Blablacar, leur moteur de recherche est fait avec ES.

J'ai déjà bossé avec, si tu veux en parler pas de soucis.

Feu d'artifice ParisOuvrir dans une nouvelle fenetre

kigenaou | Paul
Membre

 

Inscrit le : 09/05/2005

# Le 16/08/2016 à 19:02

j'ai pas mal utilisé elasticsearch.

A priori,il semble pouvoir répondre à tes besoins, mais il y aura pas mal de customisation à faire (pour chaque type de produit).

Tu peux aussi regarder du coté d'algolia, ça a le vent en poupe en ce moment : https://www.algolia.com/Ouvrir dans une nouvelle fenetre

ddpetit | Damien
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 03/09/2016 à 10:01

Bonjour,

Merci à tous pour vos réponses, j'ai regardé une vidéo du CTO Blablacar très intéressante pour bien comprendre le fonctionnement d'elasticsearch. Par ailleurs, la documentation est on ne peut plus claire et la facilité pour démarrer impressionnante :-)

Je conseille à ceux qui veulent améliorer leur recherche d'y jeter un coup d'oeil ça vaut vraiment le coup

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 03/09/2016 à 17:07

Quel avantage par rapport a un dev perso ? Explique un peu ton choix.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre

PyRoFlo | Florent
Modérateur

Photo de PyRoFlo

Inscrit le : 09/05/2005

# Le 03/09/2016 à 17:17

La perf, la scalabilité (suffit d'ajouter un serveur dans le cluster et paf c'est reparti) et la puissance de la recherche : mots clés, synonymes, pondération, scoring, facettes... un truc infaisable avec MySQL et tout ça ultra rapidement.

Le seul inconvénient c'est qu'il faut maintenir une deuxième base de données mais à partir du moment où on a besoin de faire de la vraie recherche MySQL ne suffit plus.

Feu d'artifice ParisOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 05/09/2016 à 21:42

AH ouais la gestion des synonymes, c'est fort.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre

ddpetit | Damien
Modérateur

Photo de ddpetit

Inscrit le : 03/05/2006

# Le 06/09/2016 à 21:00

Oui y'a vraiment des trucs que tu mettrais des mois à développer, je suis sûr que ça t'intéresserait JC

Concernant le maintien de la deuxième bdd, c'est hyper simple. Elasticsearch est considéré comme une base instable = ils ne veulent pas que tu t'en serves pour des données qui sont disponibles uniquement dans la bdd elasticsearch ; et il s'agit d'une base NoSQL. Il suffit donc de faire un script qui te génère l'index de la bdd en json puis l'indexer par paquet de 1.000 à 5.000 datas. Un index se reconstruit rapidement.

Si tu veux je pourrai échanger mon expérience par rapport à brico une fois que ce sera mis en place

Loccasion.com - Vente de voitures d'occasionOuvrir dans une nouvelle fenetre - Mandataire AutoOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 06/09/2016 à 22:28

Yes je veux bien. Bon c'est un peu con, je viens de refaire mon moteur interne...

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre

Salemioche | Nicolas
Membre

Photo de Salemioche

Inscrit le : 26/12/2008

# Le 09/09/2016 à 09:12

j'ai mis en prod il y a plusieurs mois pour un client. install rapide et simple. toutes les nuits je recharge complètement l'index ( ça prend rien et marché FR, donc à 3h du mat', ca ne gène personne )

api php nickel aussi. je recommande, je suis en train de le mettre en place pour un autre système de recherche de duplicate dans du contenu.

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 11/12/2017 20:01:00 | Généré en 8.75ms | Contacts | Mentions légales |