Share Button

Lire la version française

This article talks about the implementation of a search with Elasticsearch on a Symfony project.

Install Elasticsearch

Continue reading

Share Button

Share Button

Lire la version française

This article is the second one about Elasticsearch.
Its goal is not to present what is Elasticsearch, you can read more about it on other blogs, like this one (in French). But it will allow you to get to the heart of the matter, and to understand the following articles.

Continue reading

Share Button

Share Button

Lire la version française

We have worked recently on search engines in different domains :

  • 2 multi-criterias front office search engines moteurs de recherche multi-critères front-office (for frontend users)
  • 2 multi-criterias back office search engines (for administrators)
  • on statistical engine (computing, agregations, sums, means, …)

Build these engines on a database would have been too costly (in development time but also for performance reasons) for approximate results (for both statistic and full-text search).

For these reasons, we have decided to use Elasticsearch : a search engine based on Lucene. Here is the result of our adventures : 11 articles (including this one):
Continue reading

Share Button

Share Button

Read the English version

Au cours de récents projets, nous avons été amenés à travailler sur des moteurs de recherche dans des domaines complètement différents :

  • 2 moteurs de recherche multi-critères front-office (orientés utilisateurs)
  • 2 moteurs de recherche multi-critère back-office (orientés administrateurs)
  • un moteur de statistiques (calculs, aggrégations, sommes, moyennes, …)

Réaliser ces moteurs sur une base de données se serait révélé coûteux (en temps de développement mais aussi au niveau des performances) pour des résultats mitigés (aussi bien au niveau statistiques, qu’au niveau recherche “texte”).

Pour cela, nous nous sommes tournés vers Elasticsearch : moteur de recherche basé sur Lucene. Voici le résultat de nos péripéties : 11 articles.
Continue reading

Share Button

Share Button

Read the English version

Comme REST doit être sans état (stateless) :

chaque requête d’un client vers un serveur doit contenir toute l’information nécessaire pour permettre au serveur de comprendre la requête, sans avoir à dépendre d’un contexte conservé sur le serveur. Cela libère de nombreuses interactions entre le client et le serveur.

Article Wikipedia sur REST

Nous avions besoin d’ajouter un nouvel authentication provider dans Symfony2 pour respecter cette contrainte. Nous avons choisi WSSE.

Cet article explique comment configurer WSSE sur Symfony, comment l’utiliser avec FOSRestBundle et tester le tout avec Google Chrome.
Continue reading

Share Button

Share Button

Read the English version

Après avoir publié un article sur la configuration WSSE dans Symfony, nous avons reçu beaucoup de questions sur l’utilisation de WSSE dans une application Android. Nous espérons que cet article répondra à ces questions!
Notez que nous ne parlerons que WSSE et que nous n’aborderons pas la conception d’un client rest dans une application Android.
Continue reading

Share Button

Share Button

Read the English version
Récemment, j’ai dû exporter un gros volume de données dans un fichier csv. C’est facile et rapide à faire si vous ne vous souciez pas de la mémoire utilisée et de l’expérience utilisateur. Je voulais que la consommation de mémoire n’augmente pas en fonction du volume de données.

Je me suis inspiré de cet article de blog mais, malgré ce qui est écrit dans le billet, des tests ont montré que la consommation de mémoire augmentait rapidement si le volume de données augmentait.

Continue reading

Share Button

Share Button

Lire la version française
I recently had to export a huge set of data to a csv file. This is easy and fast to do if you don’t care about memory and User Experience. I wanted the memory consumption does not increase with the volume of data.

I got inspiration from this post (in French) but, in spite of what is written in the post, some tests with the memory_get_usage function proved that the memory consumption increased quickly with the number of datas.
Continue reading

Share Button

Share Button

Read the English version

Ce billet traite d’elasticsearch qui est un moteur de recherche très puissant.
La plus grande difficulté que nous avons rencontrée est que nous ne savions pas comment bien configurer Elasticsearch pour obtenir des résultats de recherche pertinents. Une autre difficulté est (désolé de le dire) que la documentation officielle n’est pas très bien faite. Ok, c’est mon opinion et je suis obligé d’admettre que j’y ai trouvé des informations très utiles, mais parfois, les informations y sont difficiles à trouver.
En conséquence, nous avons mis les mains dans elasticsearch pour comprendre comment il fonctionne. Et nous pensons que nous avons fini par comprendre plein de choses que nous ne savions pas, et nous avons trouvé une (presque?) parfaite configuration.

Continue reading

Share Button

Share Button

Lire la version française
This post is about elasticsearch which is a great search engine.
The biggest difficulty we meet is that we do not know how to configure Elasticsearch to have relevant search results. Another difficulty is (sorry to say that), the documentation is not very well done. Ok, it’s my opinion and I can’t denied we found usefull information in it, but information are sometimes difficult to find.
So, we searched into the deeps of elasticsearch to understand how it works. And we think we finally understood lot of things we did’nt know, and we have built the perfect (maybe?) configuration.

Continue reading

Share Button