Sommaire
- SolR ; qu’est-ce que c’est ? à quoi ça sert ?
- Installer SolR
- Configurer SolR
- Configurer Magento pour utiliser SolR
- Résultats : recherche plus pertinente et ShopBy plus performant
L’utilisation du module SolR pour Magento décrit ci-dessous est réservé à la version Enterprise de Magento (test effectué sur la version 1.11.0.0).
Une alternative pour la version Community existe sur MagentoConnect : http://www.magentocommerce.com/magento-connect/solr-bridge-search.html
Ou encore une version simplifiée gratuite toujours pour la version communautaire de Magento : http://code.google.com/p/magento-community-edition-solr/
SolR ; qu’est-ce que c’est ? à quoi ça sert ?
Apache SOLR est un serveur basé sur Apache Lucene, une librairie de recherche « full-text » libre, sous licence Apache. Le gros avantage de Lucène est qu’elle est très robuste, très stable et très performante.
Appliqué à Magento Enterprise Edition Apache SolR permet d’effectuer une recherche à facette beaucoup plus pertinente et performante que la recherche native de Magento :
- Recherche plus performance et réactive n’utilisant pas le SGBD classique donc moins de charge sur ce dernier (mysql, pgsql…)
- Recherche de mot clé proposant des résultats alternatifs si aucun résultat n’est trouvé du type « Ne cherchez-vous pas plutôt ‘rechercheA’ (X résultats), ‘rechercheB’ (Y résultats) ? »
- Listings produits (catégories produits) et filtrages (ShopBy) utilisant le moteur SolR : moins de requêtes sur le SGDB classique donc encore une fois moins de charge.
Installer Apache SolR
Installer JAVA sous DEBIAN
aptitude update
aptitude install sun-java6-jre
java – version
Résultat attendu :

Installer Apache SolR
wget http://apache.dattatec.com//lucene/solr/3.4.0/apache-solr-3.4.0.tgz
tar xf apache-solr-3.4.0.tgz
cd apache-solr-3.4.0/example/
java -jar start.jar
Résultat attendu :

On constate à la fin des logs que SolR tourne sur le port 8983 donc il faut l’ouvrir sur votre firewall si vous voulez accéder à son interface web depuis l’extérieur.
Ensuite ouvrez avec votre navigateur : http://[IP_SERVEUR]:8983/solr/admin/
Vous devriez voir cet écran d’accueil SolR :

Configurer SolR
Faire un backup du répertoire de configuration SolR puis copier la configuration Magento dans SolR en confirmant l’écrasement des fichiers :
cd [solr-instance]/example/solr/
cp -r conf conf_backup
cd [magento-instance]/lib/Apache/solr/conf
cp * [solr-instance]/example/solr/conf/.
Redémarrez ensuite SolR ; le redémarrage de SolR devra vous afficher ces logs confirmant la prise en charge des différents handlers Magento par SolR pour chaque langue (cliquez sur la capture pour l’agrandir) :

Configurer Magento pour utiliser SolR
Depuis le backoffice de Magento se rendre dans « System > Configuration > Catalog > Catalog search » puis configurez les champs comme dans la capture d’écran ci-dessous (cliquez sur la capture pour l’agrandir) :

Cliquez ensuite sur le bouton « Test Connection » afin de vérifier que tout fonctionne bien ; vous devriez voir :
![]()
Lancez ensuite une réindexation totale de Magento :
cd [magento-instance]/shell/
php indexer.php reindexall
Pendant l’indexation vous devriez voir les logs SolR défiler indiquant que l’index SolR est alimenté par Magento (transfert des données depuis le SGBD classique vers SolR – cliquez sur la capture pour l’agrandir) :

Résultats : recherche plus pertinente et ShopBy plus performant
Moteur de recherche Magento :
- La recherche Magento est beaucoup plus rapide et pertinente par rapport à la recherche de base
- Le temps d’indexation du “catalogsearch_fulltext” est plus rapide
- Lorsqu’il n’y a aucun résultat, affichage de suggestions de mots clés amenant à des résultats comme sur Google « Voulez-vous plutôt recherchez xxx (3 résultats) ou yyy (1 résultat) ? »
Voyez par vous-même le résultat après avoir lancé une recherche :

Navigation à travers les catégories et filtrage (shopBy) :
- Navigation plus rapide (6ms pour retourner les résultats de la requête SolR) en utilisant le moteur SolR pour lister les produits à la façon « recherche SolR » après l’avoir activé en backoffice (Enable SolR engine for catalog navigation = Yes)
- 90% de requêtes en moins (requêtes catégories) sur MySQL lors de l’affichage d’un listing produit
- SolR n’a néanmoins pas d’impact lors de l’affichage d’une fiche produit
Dans cet exemple on voit passer la requète à SolR pour l’affichage d’une catégorie (categories :22) – le nombre de résultats (hits=4) et le temps d’exécution de la requête en millisecondes (QTime=22) – cliquez sur la capture pour l’agrandir :
![]()
