Share Button

Read the English version

Dans un système de données non relationnel, ce qui peut manquer ce sont les jointures.
Heureusement, Elasticsearch propose des solutions pour répondre à différents besoins :

Array Type

Lire l’article sur elasticsearch.org

Comme son nom l’indique : ce peut être un tableau de types natifs (string, int, …) mais aussi d’objets (c’est la base utilisée pour les “objects” et les “nested”).
Continue reading

Share Button

Share Button

Lire la version française

Elasticsearch allows you to make advanced searches. Some users may want to extract their search results to Excel (or LibreOffice Calc…) to work on the data.

As we explained in our post Export data to a csv file with Symfony, the goal of a (successful) export is to limit the effect on the server.

With Elasticsearch, we can use the scan and scroll functions to iterate.

Continue reading

Share Button

Share Button

Read the English version

Elasticsearch vous permet de réaliser des recherches avancées.
Certains utilisateurs souhaiteront extraire le résultat de leurs recherches sous excel (ou LibreOffice Calc…) pour retraiter les données.

Comme nous l’avons expliqué lors de notre article Exporter des données dans un fichier csv, le but d’un export (réussi) est de limiter l’impact sur le serveur.

Dans Elasticsearch, nous pouvons utiliser les fonctions scan et scroll pour réaliser nos itérations.

Continue reading

Share Button

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

Quand et pourquoi hydrater son objet avec les Transformers?

Quand on utilise Elasticsearch et les Finders du FOSElasticaBundle, les réponses reçues d’Elasticsearch sont automatiquement transformées en objets Doctrine. 

Dans certains cas, vous aurez besoin d’afficher une information issue d’une jointure : la photo, la traduction d’une catégorie, …
Malheureusement, l’hydratation est faite uniquement sur les objets en question : FOSElasticaBundle transforme les ids correspondant à la recherche en objets via un select * in (:ids).
Conséquence : pour chaque entrée dans votre liste de résultats, Doctrine ira chercher la Category associée. Pour 100 enregistrements dans 100 catégories différentes, 100 requêtes simples seront ajoutées. On se rend compte de ce qui peut arriver avec un modèle de données compliqué et plusieurs jointures.

Heureusement, pour éviter cela, vous pouvez surcharger le Transformer.
Continue reading

Share Button

Share Button

Read the English version

Cet article présente comment configurer et rechercher avec Elasticsearch sur un projet Symfony :

Continue reading

Share Button

Share Button

Read the English version

Cet article est le deuxième d’une série consacrée à Elasticsearch.
Il n’a pas pour but de présenter ce qu’est Elasticsearch, vous pourrez en lire plus par exemple sur ce blog : http://blog.zenika.com/index.php?post/2012/11/14/Premiers-pas-avec-ElasticSearch-Partie-1. Mais il vous permettra de mettre les mains dans le moteur, et de comprendre les articles qui suivront.
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